Skip to content

fix: rethrow error of failed iterable after calling return()#18169

Merged
dummdidumm merged 8 commits into
mainfrom
iterator-rethrow-fix
May 6, 2026
Merged

fix: rethrow error of failed iterable after calling return()#18169
dummdidumm merged 8 commits into
mainfrom
iterator-rethrow-fix

Conversation

@dummdidumm

Copy link
Copy Markdown
Member

The fix in #17966 wasn't quite right, because we gotta rethrow in case the iterator stopped because of an error. Fixes part of the SvelteKit query.live test failure.

The fix in #17966 wasn't quite right, because we gotta rethrow in case the iterator stopped because of an error.
Fixes part of the SvelteKit `query.live` test failure.
@changeset-bot

changeset-bot Bot commented May 1, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 3d7828a

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

@svelte-docs-bot

Copy link
Copy Markdown

@github-actions

github-actions Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

Playground

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

Comment thread packages/svelte/src/internal/client/reactivity/async.js Outdated
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
@Rich-Harris

Copy link
Copy Markdown
Member

The behaviour of the test is identical on main AFAICT?

@dummdidumm

dummdidumm commented May 6, 2026

Copy link
Copy Markdown
Member Author

thanks to your change I had another look and noticed that we actually need to differentiate between errors thrown from iterator.next() (which should not invoke return) and from user errors while yielding (which should invoke return). Fixed that and added another test.

Comment thread packages/svelte/src/internal/client/reactivity/async.js Outdated
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
@dummdidumm dummdidumm merged commit d4c5a91 into main May 6, 2026
20 of 21 checks passed
@dummdidumm dummdidumm deleted the iterator-rethrow-fix branch May 6, 2026 07:59
@github-actions github-actions Bot mentioned this pull request May 5, 2026
Rich-Harris pushed a commit that referenced this pull request May 14, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## svelte@5.55.6

### Patch Changes

- fix: leave stale promises to wait for a later resolution, instead of
rejecting ([#18180](#18180))

- fix: keep dependencies of `$state.eager/pending`
([#18218](#18218))

- fix: reapply context after transforming error during SSR
([#18099](#18099))

- fix: don't rebase just-created batches
([#18117](#18117))

- chore: allow `null` for `pending` in typings
([#18201](#18201))

- fix: flush eager effects in production
([#18107](#18107))

- fix: rethrow error of failed iterable after calling `return()`
([#18169](#18169))

- fix: account for proxified instance when updating `bind:this`
([#18147](#18147))

- fix: ensure scheduled batch is flushed if not obsolete
([#18131](#18131))

- fix: resolve stale deriveds with latest value
([#18167](#18167))

- chore: remove unnecessary `increment_pending` calls
([#18183](#18183))

- fix: correctly compile component member expressions for SSR
([#18192](#18192))

- fix: reset `source.updated` stack traces after `flush`
([#18196](#18196))

- fix: replacing async 'blocking' strategy with 'merging'
([#18205](#18205))

- fix: allow `@debug` tags to reference awaited variables
([#18138](#18138))

- fix: re-run fallback props if dependencies update
([#18146](#18146))

- fix: abort running obsolete async branches
([#18118](#18118))

- fix: ignore comments when reading CSS values
([#18153](#18153))

- fix: wrap `Promise.all` in `save` during SSR
([#18178](#18178))

- fix: ignore false-positive errors of `$inspect` dependencies
([#18106](#18106))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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