svelte@5.50.0

sveltejs/sveltesvelte@5.50.0Feb 6, 2026by github-actions[bot]

AI Summary

This minor release enables programmatic component instantiation using `createContext` and fixes hydration logic to handle edge cases such as `{#key NaN}` and properly hydrate already-resolved async blocks.

Key Highlights

  • Allow use of `createContext` when instantiating components programmatically
  • Allow `{#key NaN}`
  • Properly hydrate already-resolved async blocks
  • Emit `each_key_duplicate` error in production

New Features

  • Allow use of `createContext` when instantiating components programmatically

Full Release Notes

### Minor Changes

-   feat: allow use of createContext when instantiating components programmatically ([#17575](https://github.com/sveltejs/svelte/pull/17575))

### Patch Changes

-   fix: ensure infinite effect loops are cleared after flushing ([#17601](https://github.com/sveltejs/svelte/pull/17601))

-   fix: allow `{#key NaN}` ([#17642](https://github.com/sveltejs/svelte/pull/17642))

-   fix: detect store in each block expression regardless of AST shape ([#17636](https://github.com/sveltejs/svelte/pull/17636))

-   fix: treat `<menu>` like `<ul>`/`<ol>` for a11y role checks ([#17638](https://github.com/sveltejs/svelte/pull/17638))

-   fix: add vite-ignore comment inside dynamic crypto import ([#17623](https://github.com/sveltejs/svelte/pull/17623))

-   chore: wrap JSDoc URLs in `@see` and `@link` tags ([#17617](https://github.com/sveltejs/svelte/pull/17617))

-   fix: properly hydrate already-resolved async blocks ([#17641](https://github.com/sveltejs/svelte/pull/17641))

-   fix: emit `each_key_duplicate` error in production ([#16724](https://github.com/sveltejs/svelte/pull/16724))

-   fix: exit resolved async blocks on correct node when hydrating ([#17640](https://github.com/sveltejs/svelte/pull/17640))