Skip to content

Conversation

@Rich-Harris
Copy link
Member

This fixes ones of the bugs identified in #17240 (comment). (To be honest I'm astonished that it lasted this long.) Specifically, when you have an each block go from ['a', 'b'] to [], and then to ['a'] while items are still outroing, b will never be removed from the DOM, because the a outro is aborted and the callback that destroys effects is never called.

This solution is admittedly a bit more involved than I initially hoped. I wonder if it would be better to coordinate effect destruction at the batch level, though I didn't pursue that as it would be a breaking change. At least this change imposes no costs on each blocks that don't contain outros.

Before submitting the PR, please make sure you do the following

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • Prefix your PR title with feat:, fix:, chore:, or docs:.
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.
  • If this PR changes code within packages/svelte/src, add a changeset (npx changeset).

Tests and linting

  • Run the tests with pnpm test and lint the project with pnpm lint

@changeset-bot
Copy link

changeset-bot bot commented Nov 27, 2025

🦋 Changeset detected

Latest commit: e976d40

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
svelte Patch

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

@github-actions
Copy link
Contributor

Playground

pnpm add https://pkg.pr.new/svelte@17258

@Rich-Harris Rich-Harris marked this pull request as draft November 27, 2025 02:32
@Rich-Harris
Copy link
Member Author

Marked as draft, because I'd like to fix the remaining issues as well if I can

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants