-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
fix: prevent memory leaking signals in legacy mode #16145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🦋 Changeset detectedLatest commit: f2e61f6 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice fix
Wait I was sure I left a comment here but apparently I did not: if your item is an object and you mutate it before update needs to be invoked...this currently doesn't work so dunno if we want to make it work but technically it works in svelte 4 |
do you have a repro? |
Yup: this works and invoke before update in svelte 4 but doesn't work in svelte 5 legacy mode (and it will definitely not invoke before after this change. Same for an |
I've looked in that case, and think there, like in #each in case of mutation, should be invoked |
Tbf I don't think anyone is relying on this behavior so we could just decide this is fine |
Yeah, there'd be no harm in fixing it but since this PR doesn't introduce a new bug and since it's likely that no-one relies on the Svelte 4 behaviour I'm inclined to ignore it |
Closes #16040
Alternative to #16141
Looks like there is no need for tracking these signals, they just need to use
safe_equals
equality check.Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.packages/svelte/src
, add a changeset (npx changeset
).Tests and linting
pnpm test
and lint the project withpnpm lint