-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
fix: correctly teardown bind:this
with $state.frozen
#12290
fix: correctly teardown bind:this
with $state.frozen
#12290
Conversation
🦋 Changeset detectedLatest commit: 506b0ea 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 |
I think this hides a different bug: A component should always return an object, even if it's empty, so that |
Yeah I had the impression that something was wrong anyway and wasn't aware that the component should always return an object even if it didn't export anything. However it still seemed strange not checking for state frozen in that function, do you think this could lead to other bugs? |
I don't think we should be treating frozen state differently |
Gotcha...sorry for the small mess-up i hope the exploration was at least useful to find the right fix quicker :) |
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