fix: correctly teardown bind:this
with $state.frozen
#12290
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Svelte 5 rewrite
Closes #12287
The teardown was incorrectly fired because if the user uses
state.frozen
there's no[STATE_SYMBOL].v
but the whole bound value is the "original target".Note that this only happen with
dev: false
because in dev the methods$on
,$set
and$destroy
are added to throw errors and the problem was specifically when the bound value wasundefined
(the component was not exporting anything).I might be on the wrong path (i'm just wondering why this was a problem only for undefined) but it seems to make sense.
P.s. there's a completely unrelated failing tests, maybe is onmain
?Please note that the Svelte codebase is currently being rewritten for Svelte 5. Changes should target Svelte 5, which lives on the default branch (
main
).If your PR concerns Svelte 4 (including updates to svelte.dev.docs), please ensure the base branch is
svelte-4
and notmain
.Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.Tests and linting
pnpm test
and lint the project withpnpm lint