Svelte

Frameworks & LibrariesMIT

Cybernetically enhanced web apps.

Latest 5.57.0 · by SvelteWritten in JavaScriptWebsitesveltejs/svelteRSS

Release activity

Release activity — 103 releases across 82 days since Oct 18, 2025. Each cell is one day; darker means more releases that day. Nothing is recorded before Oct 18, 2025. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 31, 20261 release on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026
Monday1 release on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 20261 release on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026No releases on Sep 14, 2026
TuesdayNo releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 20261 release on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 20261 release on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 20261 release on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026
Thursday1 release on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 20261 release on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 20261 release on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026No releases on Sep 10, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 20261 release on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 20261 release on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026
SaturdayNo releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026No releases on Sep 12, 2026

103 releases since Oct 18, 2025, busiest day 4

Changelog

5.57.0

Latest
Added 4
  • Export `RenderOutput`, `SyncRenderOutput`, `Csp` and `Sha256Source` from `svelte/server`
  • Add `has` function to `createContext`
  • Support `defaultValue` on `<select>`
  • Add getOrInsert/getOrInsertComputed to SvelteMap
Changed 1
  • Reuse the cached value in the `<option>`/`<select>` value guard
Fixed 15
  • Block template store subscriptions on the promise that assigns the store
  • Route $derived teardown errors through invoke_error_boundary
  • Track SvelteDate snapshots in reactions
  • Remove `<svelte:head>` anchors on unmount
  • Warn on undeclared shorthand event handlers on `<svelte:window>`, `<svelte:document>` and `<svelte:body>`
  • Prevent malformed AST output for `<select>` with static `value` attribute

From Svelte

Minor Changes
  • feat: export RenderOutput, SyncRenderOutput, Csp and Sha256Source from svelte/server (#18648)

  • feat: add has function to createContext (#18472)

  • feat: support defaultValue on <select> (#18591)

  • feat: add getOrInsert/getOrInsertComputed to SvelteMap (#18728)

Patch Changes
  • fix: block template store subscriptions on the promise that assigns the store (#18582)

  • fix: route $derived teardown errors through invoke_error_boundary (#18486)

  • fix: track SvelteDate snapshots in reactions (#18700)

  • fix: remove <svelte:head> anchors on unmount (#18697)

  • fix: warn on undeclared shorthand event handlers on <svelte:window>, <svelte:document> and <svelte:body> (#18480)

  • perf: reuse the cached value in the <option>/<select> value guard (#18713)

  • fix: prevent malformed AST output for <select> with static value attribute (#18449)

  • fix: apply ownership mutation ignores to binding assignments (#18718)

  • fix: prevent onoutroend from firing twice when compilerOptions.hmr is true (#18655)

  • fix: preserve whitespace after inline elements when printing (#18685)

  • perf: fold SSR block-open markers into the branch's first push (#18712)

  • fix: run onDestroy callbacks when a server render throws (#18585)

  • fix: report derived_invalid_export for export let x = $derived(...) in runes mode (#18692)

  • fix: never apply class hash to elements inside <svelte:head> (#18160)

  • fix: keep defaultChecked on hydrated radio inputs with spread attributes (#18701)

  • fix: accept onfocusin/onfocusout in a11y_mouse_events_have_key_events (#18689)

  • perf: O(n²)→O(n) Map lookups for legacy $: reactive statement ordering (#18602)

  • fix: distinct memoizer on style/class directives (#18466)

  • fix: measure nested transitions before applying their starting styles (#18647)

  • fix: don't turn component instances stored in $state into state proxies (#18646)

  • perf: emit $.only_child for elements with a single child (#18717)

  • fix: omit bind:focused from SSR output (it has no HTML attribute) (#18724)

  • fix: more robust rendering of Svelte custom element slots (#18710)

  • perf: optimize simple object destructuring in @const tags (#18390)

  • fix: properly apply static textarea value attribute during CSR (#18727)

  • fix: end a restored reaction context at the end of its synchronous segment (#18694)

  • fix: keep the dependencies of a reaction that throws, so deriveds it read are neither leaked nor stuck in their error (#18703)

  • fix: don't resurrect outroing elements when an ancestor block is paused and resumed (#18431)

  • perf: use $.comment() for single-comment templates (#18714)

  • chore: move @types/trusted-types to devDependencies (#18730)

  • perf: store setters cache as Set instead of Array (#18251)

  • fix: transform derived assignments and select function bindings correctly during server-side rendering (#18669)

  • fix: keep boolean attributes with an empty string value when rendering attribute objects on the server (#18721)

  • fix: sync SvelteURL port signal when the protocol setter clears the port (#18705)

  • fix: block declaration tags and {@const} on async values read inside closures (#18533)

  • fix: avoid css tree-shaking for exported Snippet (#18540)

  • perf: treat <img loading> as a static element again (#18711)

  • fix: prevent selectedcontent mutation from changing the selected option (#18495)

  • fix: avoid NaN keyframe values in slide transition for elements without a layout box (#18430)

  • fix: preserve line feed character references in attribute values (#18691)

  • fix: decode uppercase-X hex numeric character references (&#X...;) (#18708)

  • chore: clarify when $effect.pre runs relative to DOM updates (#18534)

  • fix: scope SSR boundary failed snippets to their boundary (#18593)

View originalPermalink
How 5.57.0 went

5.56.10

Changed 1
  • make async blocker analysis scale linearly with the number of top-level references
Fixed 19
  • preserve CSS escape sequences when printing selectors
  • parse `:nth-child(2n of.foo)` where `of` is not followed by whitespace
  • transform expressions inside labeled statements during server compilation
  • apply CSS custom properties with falsy values on components
  • correctly print `{#await ... catch x}` et al
  • ignore comments of Program node during migration script

From Svelte

Patch Changes
  • fix: preserve CSS escape sequences when printing selectors (#18667)

  • fix: parse :nth-child(2n of.foo) where of is not followed by whitespace (#18611)

  • fix: transform expressions inside labeled statements during server compilation (#18617)

  • docs: clarify that context lookup includes the current component and all ancestors (#18581)

  • fix: apply CSS custom properties with falsy values on components (#18634)

  • fix: correctly print {#await ... catch x} et al (#18645)

  • fix: ignore comments of Program node during migration script (#18656)

  • fix: reliably resolve append_style to its correct root (#18614)

  • fix: clean up removed capture event handlers from spread attributes (#18618)

  • fix: don't corrupt renderer type during SSR's legacy bind: retry loop (#18616)

  • fix: treat concise arrow function bodies as implicit returns when calculating blockers (#18613)

  • fix: give effect teardowns the value from before the first write in a flush (#18620)

  • fix: avoid double-calling a derived reference when destructuring $derived of another $derived during server-side rendering (#18668)

  • fix: preserve namespaces in CSS type selectors (#18678)

  • fix: increment private state fields through a non-this receiver (#18622)

  • chore: deduplicate client and server context helpers (#18580)

  • fix: release last_propagated_event after event propagation settles so it no longer retains the last event's target subtree (#18569)

  • fix: allow custom elements to receive async values as props (#18661)

  • fix: strip comments from inline style values in linear time (#18553)

  • fix: prevent declaration comments from breaking server derived references (#18641)

  • perf: make async blocker analysis scale linearly with the number of top-level references (#18549)

  • fix: preserve short-circuiting for logical assignments to private state fields (#18594)

View originalPermalink
How 5.56.10 went

5.56.9

Fixed 4
  • Skip controlled each fast path while another batch is pending
  • Improve whitespace handling inside printer
  • Prevent duplication of comments in attributes
  • Preserve CSS comments in the AST printer

From Svelte

Patch Changes
  • fix: skip controlled each fast path while another batch is pending (#18625)

  • fix: better whitespace handling inside printer (#18638)

  • fix: don't duplicate comments in attributes (#18636)

  • fix: preserve CSS comments in the AST printer (#18637)

View originalPermalink
How 5.56.9 went

5.56.8

Fixed 2
  • Call `onerror` and provide a working `reset` when hydrating a failed boundary
  • Preserve select selection when spread attributes omit value

From Svelte

Patch Changes
  • fix: call onerror and provide a working reset when hydrating a failed boundary (#18556)

  • fix: preserve select selection when spread attributes omit value (#18561)

View originalPermalink
How 5.56.8 went

5.56.7

Added 1
  • Provide `indent` option for `print`

From Svelte

Patch Changes
  • chore: provide indent option for print (#18474)
View originalPermalink
How 5.56.7 went

5.56.6

Changed 1
  • skip unnecessary blocker analysis when compiling components without top-level await
Fixed 1
  • rerun derived that had an abort controller on reconnection

From Svelte

Patch Changes
  • perf: skip unnecessary blocker analysis when compiling components without top-level await (#18548)

  • fix: rerun derived that had an abort controller on reconnection (#18551)

View originalPermalink
How 5.56.6 went

5.56.5

Fixed 10
  • Don't (re)connect deriveds when read inside branch/root effects
  • Skip unnecessary derived effect in earlier batch
  • Avoid declaration tag warning in event handlers
  • Abort deriveds own AbortSignal when it disconnects
  • Ensure $state.eager() is correctly transformed for SSR output
  • Correctly transform declaration tags during SSR

From Svelte

Patch Changes
  • chore: drop dead code that make TSGO fail (#18496)

  • fix: don't (re)connect deriveds when read inside branch/root effects (#18527)

  • fix: skip unnecessary derived effect in earlier batch (#18525)

  • fix: avoid declaration tag warning in event handlers (#18500)

  • fix: abort deriveds own AbortSignal when it disconnects (#18400)

  • fix: ensure $state.eager() is correctly transormed for SSR output (#18530)

  • fix: correctly transform declaration tags during SSR (#18492)

  • fix: transform computed keys in keyed {#each} destructuring patterns (#18521)

  • fix: chain preprocessor sourcemaps with an empty sources[0] instead of dropping them (#18518)

  • fix: clear previous_task reference after abort in Tween to prevent memory leak on interrupted tweens (#18541)

  • fix: don't treat declaration tags as parts inside each blocks (#18507)

View originalPermalink
How 5.56.5 went

5.56.4

Fixed 4
  • Include wrapping parentheses in {@const} declarator end position
  • Always unset reactivity context after restoring it
  • Don't notify searchParams subscribers when the URL changes without affecting the search string
  • Strip ? from optional parameters in <script lang="ts"> so generated JavaScript is valid

From Svelte

Patch Changes
  • fix: include wrapping parentheses in {@const} declarator end position (#18436)

  • fix: always unset reactivity context after restoring it (#18453)

  • fix: don't notify searchParams subscribers when the URL changes without affecting the search string (#18425)

  • fix: strip ? from optional parameters in <script lang="ts"> so generated JavaScript is valid (#18448)

View originalPermalink
How 5.56.4 went

5.56.3

Fixed 2
  • Ignore errors that occur in destroyed effects
  • Type BigInts in $state.snapshot(...) return values

From Svelte

Patch Changes
  • fix: ignore errors that occur in destroyed effects (#18384)

  • fix: type BigInts in $state.snapshot(...) return values (#18388)

View originalPermalink
How 5.56.3 went

5.56.2

Fixed 4
  • Properly track effect end node for async sibling component
  • Prevent false-positive reactivity loss warning
  • Ignore declaration tags for animation directive
  • Reject pending async deriveds on discard

From Svelte

Patch Changes
  • fix: properly track effect end node for async sibling component (#18371)

  • fix: prevent false-positive reactivity loss warning (#18373)

  • chore: bump esrap dependency (#18372)

  • fix: ignore declaration tags for animation directive (#18366)

  • fix: reject pending async deriveds on discard (#18308)

View originalPermalink
How 5.56.2 went

5.56.1

Fixed 10
  • Error at compile time on duplicate snippet/declaration tag definitions
  • Parse declaration tag contents more robustly
  • Correctly transform references to earlier declarators in a declaration tag
  • Avoid spurious state_referenced_locally warnings for $derived declarations in declaration tags
  • Tolerate whitespace before let/const in declaration tags
  • Prevent infinite loop when a tag's expression ends with a trailing / at the end of the input

From Svelte

Patch Changes
  • fix: error at compile time on duplicate snippet/declaration tag definitions (#18351)

  • fix: parse declaration tag contents more robustly (#18353)

  • fix: correctly transform references to earlier declarators in a declaration tag (e.g. {let a = $state(0), b = $derived(a * 2)}) (#18348)

  • fix: avoid spurious state_referenced_locally warnings for $derived declarations in declaration tags (#18348)

  • fix: tolerate whitespace before let/const in declaration tags (#18348)

  • fix: prevent infinite loop when a tag's expression ends with a trailing / at the end of the input (#18350)

  • fix: more robust parsing of declaration tags with regards to type (#18330)

  • fix: preserve newlines in spread input values when the type attribute is applied after value (#18345)

  • fix: update SvelteURLSearchParams when setting duplicate keys to the same joined value (#18336)

  • fix: check references for blockers on server, too (#18352)

View originalPermalink
How 5.56.1 went

5.56.0

Added 1
  • Allow declarations in the template
Changed 4
  • Use createElement instead of createElementNS for HTML elements
  • Store current_sources as a Set for O(1) membership checks
  • Deduplicate identical hoisted templates within a component
  • Hoist rest_props exclude list as a module-scope Set

From Svelte

Minor Changes
  • feat: allow declarations in the template (#18282)
Patch Changes
  • perf: use createElement instead of createElementNS for HTML elements (#18262)

  • perf: store current_sources as a Set for O(1) membership checks (#18278)

  • perf: deduplicate identical hoisted templates within a component (#18320)

  • perf: hoist rest_props exclude list as a module-scope Set (#18252)

View originalPermalink
How 5.56.0 went

5.55.10

Changed 2
  • Walk composedPath() directly in delegated event propagation for improved performance
  • Add tag name to a11y_click_events_have_key_events warning
Fixed 13
  • Unlink errored and otherwise finished batch
  • Transfer effects when merging batches
  • Allow $derived(await ...) in disconnected effect roots
  • Remove temporary raw-text hydration markers
  • Propagate async @const blockers through closure references so template expressions like {(() => host)()} correctly wait for the awaited value
  • Properly unlink batches

From Svelte

Patch Changes
  • fix: unlink errored and otherwise finished batch (#18264)

  • perf: walk composedPath() directly in delegated event propagation (#18268)

  • fix: transfer effects when merging batches (#18254)

  • fix: allow $derived(await ...) in disconnected effect roots (#18273)

  • fix: remove temporary raw-text hydration markers (#18269)

  • fix: propagate async @const blockers through closure references so template expressions like {(() => host)()} correctly wait for the awaited value (#18309)

  • fix: properly unlink batches (#18298)

  • fix: settle discarded batch (#18290)

  • fix: declare let: directives before {@const} declarations on slotted elements (#18271)

  • fix: resume outro-ed branches if they were kept around (#18291)

  • fix: avoid waterfall-warning when async resolves to same value (#18297)

  • fix: correctly coordinate component-level effects inside async blocks (#18260)

  • fix: make unnecessary commit work less likely (#18263)

  • chore: add tag name to a11y_click_events_have_key_events warning (#18272)

  • fix: catch rejected promises while merging/committing (#18266)

View originalPermalink
How 5.55.10 went

5.55.9

Fixed 5
  • Don't unset batch when calling {#await ...} promise
  • Promise-ify {#await await ...} expressions on the server and correctly hydrate them on the client
  • Deduplicate dependencies that are added outside the init/update cycle
  • Avoid false-positive batch invariant error
  • Inline primitive constants in attribute values during SSR

From Svelte

Patch Changes
  • fix: don't unset batch when calling {#await ...} promise (#18243)

  • fix: promise-ify {#await await ...} expressions on the server and correctly hydrate them on the client (#18243)

  • fix: deduplicate dependencies that are added outside the init/update cycle (#18243)

  • fix: avoid false-positive batch invariant error (#18246)

  • fix: inline primitive constants in attribute values during SSR (#18232)

View originalPermalink
How 5.55.9 went

5.55.8

Fixed 5
  • Handle svelte:body and fix keyframe percentage double-printing
  • Execute uninitialized derived even if it's destroyed
  • Use named symbols everywhere
  • Don't run teardown effects when deriveds are unfreezed
  • Unset context synchronously in run

From Svelte

Patch Changes
  • fix(print): handle svelte:body and fix keyframe percentage double-printing (#18234)

  • fix: execute uninitialized derived even if it's destroyed (#18228)

  • fix: use named symbols everywhere (#18238)

  • fix: don't run teardown effects when deriveds are unfreezed (#18227)

  • fix: unset context synchronously in run (#18236)

View originalPermalink
How 5.55.8 went

5.55.7

Fixed 1
  • Move Svelte runtime properties to symbols
Security 3
  • Prevent XSS on hydratable from user contents
  • Disallow empty attribute names during SSR
  • Harden regex

From Svelte

Patch Changes
View originalPermalink
How 5.55.7 went

5.55.6

Changed 1
  • Allow null for pending in typings
Fixed 18
  • Leave stale promises to wait for a later resolution, instead of rejecting
  • Keep dependencies of $state.eager/pending
  • Reapply context after transforming error during SSR
  • Don't rebase just-created batches
  • Flush eager effects in production
  • Rethrow error of failed iterable after calling return()

From Svelte

Patch Changes
  • fix: leave stale promises to wait for a later resolution, instead of rejecting (#18180)

  • fix: keep dependencies of $state.eager/pending (#18218)

  • fix: reapply context after transforming error during SSR (#18099)

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

  • chore: allow null for pending in typings (#18201)

  • fix: flush eager effects in production (#18107)

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

  • fix: account for proxified instance when updating bind:this (#18147)

  • fix: ensure scheduled batch is flushed if not obsolete (#18131)

  • fix: resolve stale deriveds with latest value (#18167)

  • chore: remove unnecessary increment_pending calls (#18183)

  • fix: correctly compile component member expressions for SSR (#18192)

  • fix: reset source.updated stack traces after flush (#18196)

  • fix: replacing async 'blocking' strategy with 'merging' (#18205)

  • fix: allow @debug tags to reference awaited variables (#18138)

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

  • fix: abort running obsolete async branches (#18118)

  • fix: ignore comments when reading CSS values (#18153)

  • fix: wrap Promise.all in save during SSR (#18178)

  • fix: ignore false-positive errors of $inspect dependencies (#18106)

View originalPermalink
How 5.55.6 went

5.55.5

Fixed 2
  • don't mark deriveds while an effect is updating
  • do not dispatch introstart event with animation of animate directive

From Svelte

Patch Changes
  • fix: don't mark deriveds while an effect is updating (#18124)

  • fix: do not dispatch introstart event with animation of animate directive (#18122)

View originalPermalink
How 5.55.5 went

5.55.4

Fixed 3
  • Never mark a child effect root as inert
  • Reset context after waiting on blockers of @const expressions
  • Keep flushing new eager effects

From Svelte

Patch Changes
  • fix: never mark a child effect root as inert (#18111)

  • fix: reset context after waiting on blockers of @const expressions (#18100)

  • fix: keep flushing new eager effects (#18102)

View originalPermalink
How 5.55.4 went

5.55.3

Fixed 5
  • ensure proper HMR updates for dynamic components
  • correctly calculate @const blockers
  • freeze deriveds once their containing effects are destroyed
  • defer error boundary rendering in forks
  • avoid false positives for reactivity loss warning

From Svelte

Patch Changes
  • fix: ensure proper HMR updates for dynamic components (#18079)

  • fix: correctly calculate @const blockers (#18039)

  • fix: freeze deriveds once their containing effects are destroyed (#17921)

  • fix: defer error boundary rendering in forks (#18076)

  • fix: avoid false positives for reactivity loss warning (#18088)

View originalPermalink
How 5.55.3 went

5.55.2

Fixed 9
  • Invalidate @const tags based on visible references in legacy mode
  • Handle parens in template expressions more robustly
  • Disallow -- in idPrefix
  • Correct types for ontoggle on <details> elements
  • Don't override $destroy/set/on instance methods in dev mode
  • Unskip branches of earlier batches after commit

From Svelte

Patch Changes
  • fix: invalidate @const tags based on visible references in legacy mode (#18041)

  • fix: handle parens in template expressions more robustly (#18075)

  • fix: disallow -- in idPrefix (#18038)

  • fix: correct types for ontoggle on <details> elements (#18063)

  • fix: don't override $destroy/set/on instance methods in dev mode (#18034)

  • fix: unskip branches of earlier batches after commit (#18048)

  • fix: never set derived.v inside fork (#18037)

  • fix: skip rebase logic in non-async mode (#18040)

  • fix: don't reset status of uninitialized deriveds (#18054)

View originalPermalink
How 5.55.2 went

5.55.1

Fixed 5
  • correctly handle bindings on the server
  • prevent hydration error on async {@html ...}
  • cleanup superTypeParameters in ClassDeclarations/ClassExpression
  • improve duplicate module import error message
  • reschedule new effects in prior batches

From Svelte

Patch Changes
  • fix: correctly handle bindings on the server (#18009)

  • fix: prevent hydration error on async {@html ...} (#17999)

  • fix: cleanup superTypeParameters in ClassDeclarations/ClassExpression (#18015)

  • fix: improve duplicate module import error message (#18016)

  • fix: reschedule new effects in prior batches (#18021)

View originalPermalink
How 5.55.1 went

5.55.0

Added 1
  • Export TweenOptions, SpringOptions, SpringUpdateOptions and Updater from svelte/motion
Fixed 1
  • Ensure HMR wrapper forwards correct start/end nodes to active effect

From Svelte

Minor Changes
  • feat: export TweenOptions, SpringOptions, SpringUpdateOptions and Updater from svelte/motion (#17967)
Patch Changes
  • fix: ensure HMR wrapper forwards correct start/end nodes to active effect (#17985)
View originalPermalink
How 5.55.0 went

5.54.1

Fixed 6
  • hydration comments during hmr
  • null out effect.b in destroy_effect
  • group sync statements
  • defer batch resolution until earlier intersecting batches have committed
  • properly invoke iterator.return() during reactivity loss check
  • remove trailing semicolon from {@const} tag printer

From Svelte

Patch Changes
  • fix: hydration comments during hmr (#17975)

  • fix: null out effect.b in destroy_effect (#17980)

  • fix: group sync statements (#17977)

  • fix: defer batch resolution until earlier intersecting batches have committed (#17162)

  • fix: properly invoke iterator.return() during reactivity loss check (#17966)

  • fix: remove trailing semicolon from {@const} tag printer (#17962)

View originalPermalink
How 5.54.1 went

5.54.0

Added 1
  • Allow `css`, `runes`, `customElement` compiler options to be functions
Fixed 1
  • Reinstate reactivity loss tracking

From Svelte

Minor Changes
  • feat: allow css, runes, customElement compiler options to be functions (#17951)
Patch Changes
  • fix: reinstate reactivity loss tracking (#17801)
View originalPermalink
How 5.54.0 went

5.53.13

Fixed 6
  • Ensure $inspect after top level await doesn't break builds
  • Resume inert effects when they come from offscreen
  • Don't eagerly access not-yet-initialized functions in template
  • Discard batches made obsolete by commit
  • Ensure 'is standalone child' is correctly reset
  • Remove nodes in boundary when work is pending and HMR is active

From Svelte

Patch Changes
  • fix: ensure $inspect after top level await doesn't break builds (#17943)

  • fix: resume inert effects when they come from offscreen (#17942)

  • fix: don't eagerly access not-yet-initialized functions in template (#17938)

  • fix: discard batches made obsolete by commit (#17934)

  • fix: ensure "is standalone child" is correctly reset (#17944)

  • fix: remove nodes in boundary when work is pending and HMR is active (#17932)

View originalPermalink
How 5.53.13 went

5.53.12

Added 1
  • add `invariant` helper for debugging
Fixed 4
  • update `select.__value` on `change` event
  • ensure derived values are correct across batches
  • handle async RHS in `assignment_value_stale`
  • avoid traversing clean roots

From Svelte

Patch Changes
  • fix: update select.__value on change (#17745)

  • chore: add invariant helper for debugging (#17929)

  • fix: ensure deriveds values are correct across batches (#17917)

  • fix: handle async RHS in assignment_value_stale (#17925)

  • fix: avoid traversing clean roots (#17928)

View originalPermalink
How 5.53.12 went

5.53.11

Changed 1
  • Rebase batches after process, not during
Fixed 4
  • Remove untrack circular dependency
  • Recover from errors that leave a corrupted effect tree
  • Properly lazily evaluate RHS when checking for assignment_value_stale
  • Resolve boundary in correct batch when hydrating

From Svelte

Patch Changes
  • fix: remove untrack circular dependency (#17910)

  • fix: recover from errors that leave a corrupted effect tree (#17888)

  • fix: properly lazily evaluate RHS when checking for assignment_value_stale (#17906)

  • fix: resolve boundary in correct batch when hydrating (#17914)

  • chore: rebase batches after process, not during (#17900)

View originalPermalink
How 5.53.11 went

5.53.10

Fixed 1
  • Re-process batch if new root effects were scheduled

From Svelte

Patch Changes
  • fix: re-process batch if new root effects were scheduled (#17895)
View originalPermalink
How 5.53.10 went

5.53.9

Fixed 1
  • better bind:this cleanup timing

From Svelte

Patch Changes
  • fix: better bind:this cleanup timing (#17885)
View originalPermalink
How 5.53.9 went

5.53.8

Changed 1
  • avoid re-traversing the effect tree after $: assignments
Fixed 3
  • {@html} no longer duplicates content inside contenteditable elements
  • don't access inert block effects
  • handle async updates within pending boundary

From Svelte

Patch Changes
  • fix: {@html} no longer duplicates content inside contenteditable elements (#17853)

  • fix: don't access inert block effects (#17882)

  • fix: handle asnyc updates within pending boundary (#17873)

  • perf: avoid re-traversing the effect tree after $: assignments (#17848)

  • chore: simplify scheduling logic (#17805)

View originalPermalink
How 5.53.8 went

5.53.7

Changed 3
  • Cache element interactivity and source line splitting in compiler
  • Optimize CSS selector pruning
  • Avoid O(n²) name scanning in scope generate and unique
Fixed 3
  • Correctly add __svelte_meta after else-if chains
  • Preserve original boundary errors when keyed each rows are removed during async updates
  • Preserve each items that are needed by pending batches

From Svelte

Patch Changes
  • fix: correctly add __svelte_meta after else-if chains (#17830)

  • perf: cache element interactivity and source line splitting in compiler (#17839)

  • chore: avoid rescheduling effects during branch commit (#17837)

  • perf: optimize CSS selector pruning (#17846)

  • fix: preserve original boundary errors when keyed each rows are removed during async updates (#17843)

  • perf: avoid O(n²) name scanning in scope generate and unique (#17844)

  • fix: preserve each items that are needed by pending batches (#17819)

View originalPermalink
How 5.53.7 went

5.53.6

Changed 4
  • Optimize parser hot paths for faster compilation
  • More efficient effect scheduling
  • Optimize compiler analysis phase
  • Null out current_batch before committing branches
Fixed 5
  • SvelteMap incorrectly handles keys with undefined values
  • SvelteURL search setter now returns the normalized value, matching native URL behavior
  • Visit synthetic value node during ssr
  • Always case insensitive event handlers during ssr
  • Skip redundant batch.apply

From Svelte

Patch Changes
  • perf: optimize parser hot paths for faster compilation (#17811)

  • fix: SvelteMap incorrectly handles keys with undefined values (#17826)

  • fix: SvelteURL search setter now returns the normalized value, matching native URL behavior (#17828)

  • fix: visit synthetic value node during ssr (#17824)

  • fix: always case insensitive event handlers during ssr (#17822)

  • chore: more efficient effect scheduling (#17808)

  • perf: optimize compiler analysis phase (#17823)

  • fix: skip redundant batch.apply (#17816)

  • chore: null out current_batch before committing branches (#17809)

View originalPermalink
How 5.53.6 went

5.53.4

Fixed 4
  • Set server context after async transformError
  • Hydrate if blocks correctly
  • Handle default parameters scope leaks
  • Prevent flushed effects from running again

From Svelte

Patch Changes
  • fix: set server context after async transformError (#17799)

  • fix: hydrate if blocks correctly (#17784)

  • fix: handle default parameters scope leaks (#17788)

  • fix: prevent flushed effects from running again (#17787)

View originalPermalink
How 5.53.4 went

5.53.3

Fixed 2
  • Render `:catch` of `#await` block with correct key
  • Make string coercion consistent to `toString`

From Svelte

Patch Changes
  • fix: render :catch of #await block with correct key (#17769)

  • chore: pin aria-query@5.3.1 (#17772)

  • fix: make string coercion consistent to toString (#17774)

View originalPermalink
How 5.53.3 went

5.53.2

Fixed 2
  • Update expressions on server deriveds
  • Further obfuscate node:crypto import from overzealous static analysis

From Svelte

Patch Changes
  • fix: update expressions on server deriveds (#17767)

  • fix: further obfuscate node:crypto import from overzealous static analysis (#17763)

View originalPermalink
How 5.53.2 went

5.53.1

Fixed 1
  • Handle shadowed function names correctly

From Svelte

Patch Changes
  • fix: handle shadowed function names correctly (#17753)
View originalPermalink
How 5.53.1 went

5.53.0

Added 2
  • Allow comments in tags
  • Allow error boundaries to work on the server
Fixed 2
  • Use TrustedHTML to test for customizable select support, where necessary
  • Ensure head effects are kept in the effect tree

From Svelte

Minor Changes
  • feat: allow comments in tags (#17671)

  • feat: allow error boundaries to work on the server (#17672)

Patch Changes
  • fix: use TrustedHTML to test for customizable support, where necessary (#17743)

  • fix: ensure head effects are kept in the effect tree (#17746)

  • chore: deactivate current_batch by default in unset_context (#17738)

View originalPermalink
How 5.53.0 went

5.52.0

Added 1
  • Support TrustedHTML in {@html} expressions
Fixed 2
  • Repair dynamic component truthy/falsy hydration mismatches
  • Re-run non-render-bound deriveds on the server

From Svelte

Minor Changes
  • feat: support TrustedHTML in {@html} expressions (#17701)
Patch Changes
  • fix: repair dynamic component truthy/falsy hydration mismatches (#17737)

  • fix: re-run non-render-bound deriveds on the server (#17674)

View originalPermalink
How 5.52.0 went

5.51.5

Changed 1
  • Upgrade devalue
Fixed 5
  • Check to make sure svelte:element tags are valid during SSR
  • Misc option escaping and backwards compatibility
  • Strip event handlers during SSR
  • Replace usage of for in with for of Object.keys
  • Always escape option body in SSR

From Svelte

Patch Changes
View originalPermalink
How 5.51.5 went

5.51.4

Fixed 1
  • Detect and error on non-idempotent each block keys in dev mode

From Svelte

Patch Changes
  • chore: proactively defer effects in pending boundary (#17734)

  • fix: detect and error on non-idempotent each block keys in dev mode (#17732)

View originalPermalink
How 5.51.4 went

5.51.3

Fixed 4
  • prevent event delegation logic conflicting between svelte instances
  • treat CSS attribute selectors as case-insensitive for HTML enumerated attributes
  • locate Rollup annotation friendly to JS downgraders
  • run effects in pending snippets

From Svelte

Patch Changes
  • fix: prevent event delegation logic conflicting between svelte instances (#17728)

  • fix: treat CSS attribute selectors as case-insensitive for HTML enumerated attributes (#17712)

  • fix: locate Rollup annontaion friendly to JS downgraders (#17724)

  • fix: run effects in pending snippets (#17719)

View originalPermalink
How 5.51.3 went

5.51.2

Fixed 2
  • Take async into consideration for dev delegated handlers
  • Emit state_referenced_locally warning for non-destructured props

From Svelte

Patch Changes
  • fix: take async into consideration for dev delegated handlers (#17710)

  • fix: emit state_referenced_locally warning for non-destructured props (#17708)

View originalPermalink
How 5.51.2 went

5.51.1

Fixed 2
  • don't crash on undefined document.contentType
  • use symbols for encapsulated event delegation

From Svelte

Patch Changes
  • fix: don't crash on undefined document.contentType (#17707)

  • fix: use symbols for encapsulated event delegation (#17703)

View originalPermalink
How 5.51.1 went

5.51.0

Added 1
  • Use TrustedTypes for HTML handling where supported
Fixed 3
  • Sanitize template-literal-special-characters in SSR attribute values
  • Follow-up formatting in print() — flush block-level elements into separate sequences
  • Preserve delegated event handlers as long as one or more root components are using them

From Svelte

Minor Changes
  • feat: Use TrustedTypes for HTML handling where supported (#16271)
Patch Changes
  • fix: sanitize template-literal-special-characters in SSR attribute values (#17692)

  • fix: follow-up formatting in print() — flush block-level elements into separate sequences (#17699)

  • fix: preserve delegated event handlers as long as one or more root components are using them (#17695)

View originalPermalink
How 5.51.0 went

5.50.3

Fixed 5
  • Take into account nodeName case sensitivity on XHTML pages
  • Render multiple and selected attributes as empty strings for XHTML compliance
  • Always lowercase HTML elements for XHTML compliance
  • Freeze effects-inside-deriveds when disconnecting, unfreeze on reconnect
  • Propagate $effect errors to <svelte:boundary>

From Svelte

Patch Changes
  • fix: take into account nodeName case sensitivity on XHTML pages (#17689)

  • fix: render multiple and selected attributes as empty strings for XHTML compliance (#17689)

  • fix: always lowercase HTML elements, for XHTML compliance (#17664)

  • fix: freeze effects-inside-deriveds when disconnecting, unfreeze on reconnect (#17682)

  • fix: propagate $effect errors to <svelte:boundary> (#17684)

View originalPermalink
How 5.50.3 went

5.50.2

Changed 1
  • Provide proper public type for parseCss result
Fixed 4
  • Resolve effect_update_depth_exceeded when using bind:value on <select> with derived state in legacy mode
  • Don't swallow DOMException when media.play() fails in bind:paused
  • Robustify blocker calculation
  • Reduce if block nesting

From Svelte

Patch Changes
  • fix: resolve effect_update_depth_exceeded when using bind:value on <select> with derived state in legacy mode (#17645)

  • fix: don't swallow DOMException when media.play() fails in bind:paused (#17656)

  • chore: provide proper public type for parseCss result (#17654)

  • fix: robustify blocker calculation (#17676)

  • fix: reduce if block nesting (#17662)

View originalPermalink
How 5.50.2 went

5.50.1

Fixed 2
  • Render boolean attribute values as empty strings for XHTML compliance
  • Prevent async render tag hydration mismatches

From Svelte

Patch Changes
  • fix: render boolean attribute values as empty strings for XHTML compliance (#17648)

  • fix: prevent async render tag hydration mismatches (#17652)

View originalPermalink
How 5.50.1 went

5.50.0

Added 1
  • Allow use of createContext when instantiating components programmatically
Fixed 8
  • Ensure infinite effect loops are cleared after flushing
  • Allow {#key NaN}
  • Detect store in each block expression regardless of AST shape
  • Treat <menu> like <ul>/<ol> for a11y role checks
  • Add vite-ignore comment inside dynamic crypto import
  • Properly hydrate already-resolved async blocks
  • Emit each_key_duplicate error in production
  • Exit resolved async blocks on correct node when hydrating

From Svelte

Minor Changes
  • feat: allow use of createContext when instantiating components programmatically (#17575)
Patch Changes
  • fix: ensure infinite effect loops are cleared after flushing (#17601)

  • fix: allow {#key NaN} (#17642)

  • fix: detect store in each block expression regardless of AST shape (#17636)

  • fix: treat <menu> like <ul>/<ol> for a11y role checks (#17638)

  • fix: add vite-ignore comment inside dynamic crypto import (#17623)

  • chore: wrap JSDoc URLs in @see and @link tags (#17617)

  • fix: properly hydrate already-resolved async blocks (#17641)

  • fix: emit each_key_duplicate error in production (#16724)

  • fix: exit resolved async blocks on correct node when hydrating (#17640)

View originalPermalink
How 5.50.0 went

5.49.2

Fixed 3
  • Avoid erroneous async derived expressions for blocks
  • Avoid Cloudflare warnings about not having the node:crypto module
  • Reschedule effects inside unskipped branches
Removed 1
  • Remove SvelteKit data attributes from elements.d.ts

From Svelte

Patch Changes
  • chore: remove SvelteKit data attributes from elements.d.ts (#17613)

  • fix: avoid erroneous async derived expressions for blocks (#17604)

  • fix: avoid Cloudflare warnings about not having the "node:crypto" module (#17612)

  • fix: reschedule effects inside unskipped branches (#17604)

View originalPermalink
How 5.49.2 went

5.49.1

Fixed 4
  • Merge consecutive large text nodes
  • Only create async functions in SSR output when necessary
  • Properly separate multiline html blocks from each other in print()
  • Prevent unhandled exceptions arising from dangling promises in <script>

From Svelte

Patch Changes
  • fix: merge consecutive large text nodes (#17587)

  • fix: only create async functions in SSR output when necessary (#17593)

  • fix: properly separate multiline html blocks from each other in print() (#17319)

  • fix: prevent unhandled exceptions arising from dangling promises in (#17591)

View originalPermalink
How 5.49.1 went

5.49.0

Added 1
  • Allow passing ShadowRootInit object to custom element shadow option
Fixed 7
  • Throw for unset createContext get on the server
  • Reset effects inside skipped branches
  • Preserve old dependencies when updating reaction inside fork
  • Make assignment_value_stale warnings more conservative
  • Disregard popover elements when determining whether an element has content
  • Fire introstart/outrostart events after delay, if specified
  • Increment signal versions when discarding forks

From Svelte

Minor Changes
  • feat: allow passing ShadowRootInit object to custom element shadow option (#17088)
Patch Changes
  • fix: throw for unset createContext get on the server (#17580)

  • fix: reset effects inside skipped branches (#17581)

  • fix: preserve old dependencies when updating reaction inside fork (#17579)

  • fix: more conservative assignment_value_stale warnings (#17574)

  • fix: disregard popover elements when determining whether an element has content (#17367)

  • fix: fire introstart/outrostart events after delay, if specified (#17567)

  • fix: increment signal versions when discarding forks (#17577)

View originalPermalink
How 5.49.0 went

5.48.5

Fixed 3
  • Run boundary onerror callbacks in a microtask, in case they result in the boundary's destruction
  • Prevent unintended exports from namespaces
  • Each block breaking with effects interspersed among items

From Svelte

Patch Changes
  • fix: run boundary onerror callbacks in a microtask, in case they result in the boundary's destruction (#17561)

  • fix: prevent unintended exports from namespaces (#17562)

  • fix: each block breaking with effects interspersed among items (#17550)

View originalPermalink
How 5.48.5 went

5.48.4

Fixed 1
  • avoid duplicating escaped characters in CSS AST

From Svelte

Patch Changes
  • fix: avoid duplicating escaped characters in CSS AST (#17554)
View originalPermalink
How 5.48.4 went

5.48.3

Fixed 5
  • Hydration failing with settled async blocks
  • Add pointer and touch events to a11y_no_static_element_interactions warning
  • Handle false dynamic components in SSR
  • Avoid unnecessary block effect re-runs after async work completes
  • Avoid using dev-mode array.includes wrapper on internal array checks

From Svelte

Patch Changes
  • fix: hydration failing with settled async blocks (#17539)

  • fix: add pointer and touch events to a11y_no_static_element_interactions warning (#17551)

  • fix: handle false dynamic components in SSR (#17542)

  • fix: avoid unnecessary block effect re-runs after async work completes (#17535)

  • fix: avoid using dev-mode array.includes wrapper on internal array checks (#17536)

View originalPermalink
How 5.48.3 went

5.48.2

Fixed 1
  • export `wait` function from internal client index

From Svelte

Patch Changes
  • fix: export wait function from internal client index (#17530)
View originalPermalink
How 5.48.2 went

5.48.1

Fixed 6
  • Hoist snippets above const in same block
  • Properly hydrate await in {@html}
  • Batch resolution of async work
  • Account for empty statements when visiting in transform async
  • Avoid async overhead for already settled promises
  • Better code generation for const tags with async dependencies

From Svelte

Patch Changes
  • fix: hoist snippets above const in same block (#17516)

  • fix: properly hydrate await in {@html} (#17528)

  • fix: batch resolution of async work (#17511)

  • fix: account for empty statements when visiting in transform async (#17524)

  • fix: avoid async overhead for already settled promises (#17461)

  • fix: better code generation for const tags with async dependencies (#17518)

View originalPermalink
How 5.48.1 went

5.48.0

Added 1
  • Export `parseCss` from `svelte/compiler`
Fixed 2
  • Handle non-string values in `svelte:element` `this` attribute
  • Faster deduplication of dependencies

From Svelte

Minor Changes
  • feat: export parseCss from svelte/compiler (#17496)
Patch Changes
  • fix: handle non-string values in svelte:element this attribute (#17499)

  • fix: faster deduplication of dependencies (#17503)

View originalPermalink
How 5.48.0 went

5.47.1

Fixed 1
  • Trigger selectedcontent reactivity

From Svelte

Patch Changes
  • fix: trigger selectedcontent reactivity (#17486)
View originalPermalink
How 5.47.1 went

5.47.0

Added 1
  • Customizable <select> elements
Fixed 2
  • Mark subtree of svelte boundary as dynamic
  • Don't reset static elements with debug/snippets

From Svelte

Minor Changes
  • feat: customizable <select> elements (#17429)
Patch Changes
  • fix: mark subtree of svelte boundary as dynamic (#17468)

  • fix: don't reset static elements with debug/snippets (#17477)

View originalPermalink
How 5.47.0 went

5.46.3

Fixed 1
  • Reconnect clean deriveds when they are read in a reactive context

From Svelte

Patch Changes
  • fix: reconnect clean deriveds when they are read in a reactive context (#17362)
View originalPermalink
How 5.46.3 went

5.46.1

Fixed 3
  • Type currentTarget in on function
  • Skip static optimisation for stateless deriveds after await
  • Prevent infinite loop when HMRing a component with an await

From Svelte

Patch Changes
  • fix: type currentTarget in on function (#17370)

  • fix: skip static optimisation for stateless deriveds after await (#17389)

  • fix: prevent infinite loop when HMRing a component with an await (#17380)

View originalPermalink
How 5.46.1 went

5.46.0

Added 1
  • Add csp option to render() function
Changed 1
  • Emit hashes when using hydratable

From Svelte

Minor Changes
  • feat: Add csp option to render(...), and emit hashes when using hydratable (#17338)
View originalPermalink
How 5.46.0 went

5.45.10

Fixed 1
  • fix race condition when importing AsyncLocalStorage

From Svelte

Patch Changes
  • fix: race condition when importing AsyncLocalStorage (#17350)
View originalPermalink
How 5.45.10 went

5.45.9

Fixed 2
  • Correctly reschedule deferred effects when reviving a batch after async work
  • Correctly print !doctype during print

From Svelte

Patch Changes
  • fix: correctly reschedule deferred effects when reviving a batch after async work (#17332)

  • fix: correctly print !doctype during print (#17341)

View originalPermalink
How 5.45.9 went

5.45.8

Fixed 2
  • Set AST root.start to 0 and root.end to template.length
  • Prevent erroneous state_referenced_locally warnings on prop fallbacks

From Svelte

Patch Changes
  • fix: set AST root.start to 0 and root.end to template.length (#17125)

  • fix: prevent erroneous state_referenced_locally warnings on prop fallbacks (#17329)

View originalPermalink
How 5.45.8 went

5.45.7

Fixed 3
  • Add <textarea wrap="off"> as a valid attribute value
  • Add more css selectors to print()
  • Don't crash on hydratable serialization failure

From Svelte

Patch Changes
  • fix: Add <textarea wrap="off"> as a valid attribute value (#17326)

  • fix: add more css selectors to print() (#17330)

  • fix: don't crash on hydratable serialization failure (#17315)

View originalPermalink
How 5.45.7 went

5.45.6

Fixed 2
  • Don't issue a11y warning for <video> without captions if it has no src
  • Add srcObject to permitted <audio>/<video> attributes

From Svelte

Patch Changes
  • fix: don't issue a11y warning for <video> without captions if it has no src (#17311)

  • fix: add srcObject to permitted <audio>/<video> attributes (#17310)

View originalPermalink
How 5.45.6 went

5.45.5

Fixed 2
  • correctly reconcile each blocks after outroing branches are resumed
  • destroy each items after siblings are resumed

From Svelte

Patch Changes
  • fix: correctly reconcile each blocks after outroing branches are resumed (#17258)

  • fix: destroy each items after siblings are resumed (#17258)

View originalPermalink
How 5.45.5 went

5.45.4

Changed 1
  • Move DOM-related effect properties to effect.nodes
Fixed 2
  • Allow $props.id() to occur after an await
  • Keep reactions up to date even when read outside of effect

From Svelte

Patch Changes
  • chore: move DOM-related effect properties to effect.nodes (#17293)

  • fix: allow $props.id() to occur after an await (#17285)

  • fix: keep reactions up to date even when read outside of effect (#17295)

View originalPermalink
How 5.45.4 went

5.45.3

Added 1
  • Add props to state_referenced_locally
Fixed 2
  • Preserve node locations for better sourcemaps
  • Handle cross-realm Promises in hydratable

From Svelte

Patch Changes
  • add props to state_referenced_locally (#17266)

  • fix: preserve node locations for better sourcemaps (#17269)

  • fix: handle cross-realm Promises in hydratable (#17284)

View originalPermalink
How 5.45.3 went

5.45.2

Fixed 2
  • array destructuring after await
  • throw on invalid {@tag}s

From Svelte

Patch Changes
  • fix: array destructuring after await (#17254)

  • fix: throw on invalid {@tag}s (#17256)

View originalPermalink
How 5.45.2 went

5.45.1

Fixed 1
  • Link offscreen items and last effect in each block correctly

From Svelte

Patch Changes
  • fix: link offscreen items and last effect in each block correctly (#17240)
View originalPermalink
How 5.45.1 went

5.45.0

Added 1
  • Add print(...) function

From Svelte

Minor Changes
  • feat: add print(...) function (#16188)
View originalPermalink
How 5.45.0 went

5.44.1

Fixed 4
  • Await blockers before initializing const
  • Link offscreen items and last effect in each block correctly
  • Generate correct code for simple destructurings
  • Ensure each block animations don't mess with transitions

From Svelte

Patch Changes
  • fix: await blockers before initialising const (#17226)

  • fix: link offscreen items and last effect in each block correctly (#17244)

  • fix: generate correct code for simple destructurings (#17237)

  • fix: ensure each block animations don't mess with transitions (#17238)

View originalPermalink
How 5.44.1 went

5.44.0

Added 1
  • Add hydratable API for marking components as hydratable

From Svelte

Minor Changes
  • feat: hydratable API (#17154)
View originalPermalink
How 5.44.0 went

5.43.15

Changed 1
  • Lift the restriction that flushSync cannot be called in effects
Fixed 2
  • Don't execute attachments and attribute effects eagerly
  • Store forked derived values

From Svelte

Patch Changes
  • fix: don't execute attachments and attribute effects eagerly (#17208)

  • chore: lift "flushSync cannot be called in effects" restriction (#17139)

  • fix: store forked derived values (#17212)

View originalPermalink
How 5.43.15 went

5.43.14

Fixed 3
  • Correctly migrate named self closing slots
  • Error at compile time instead of at runtime on await expressions inside bindings/transitions/animations/attachments
  • Take async blockers into account for bindings/transitions/animations/attachments

From Svelte

Patch Changes
  • fix: correctly migrate named self closing slots (#17199)

  • fix: error at compile time instead of at runtime on await expressions inside bindings/transitions/animations/attachments (#17198)

  • fix: take async blockers into account for bindings/transitions/animations/attachments (#17198)

View originalPermalink
How 5.43.14 went

5.43.13

Fixed 1
  • don't set derived values during time traveling

From Svelte

Patch Changes
  • fix: don't set derived values during time traveling (#17200)
View originalPermalink
How 5.43.13 went

5.43.12

Fixed 1
  • maintain correct linked list of effects when updating each blocks

From Svelte

Patch Changes
  • fix: maintain correct linked list of effects when updating each blocks (#17191)
View originalPermalink
How 5.43.12 went

5.43.11

Changed 1
  • don't use tracing overeager during dev
Fixed 1
  • don't cancel transition of already outroing elements

From Svelte

Patch Changes
  • perf: don't use tracing overeager during dev (#17183)

  • fix: don't cancel transition of already outroing elements (#17186)

View originalPermalink
How 5.43.11 went

5.43.10

Fixed 1
  • Avoid other batches running with queued root effects of main batch

From Svelte

Patch Changes
  • fix: avoid other batches running with queued root effects of main batch (#17145)
View originalPermalink
How 5.43.10 went

5.43.9

Fixed 6
  • correctly handle functions when determining async blockers
  • keep deriveds reactive after their original parent effect was destroyed
  • ensure eager effects don't break reactions chain
  • ensure async @const in boundary hydrates correctly
  • take blockers into account when creating #await blocks
  • parallelize async @const's in the template

From Svelte

Patch Changes
  • fix: correctly handle functions when determining async blockers (#17137)

  • fix: keep deriveds reactive after their original parent effect was destroyed (#17171)

  • fix: ensure eager effects don't break reactions chain (#17138)

  • fix: ensure async @const in boundary hydrates correctly (#17165)

  • fix: take blockers into account when creating #await blocks (#17137)

  • fix: parallelize async @consts in the template (#17165)

View originalPermalink
How 5.43.9 went

5.43.8

Fixed 1
  • each block losing reactivity when items removed while promise pending

From Svelte

Patch Changes
  • fix: each block losing reactivity when items removed while promise pending (#17150)
View originalPermalink
How 5.43.8 went

5.43.7

Fixed 3
  • Properly defer document title until async work is complete
  • Ensure deferred effects can be rescheduled later on
  • Take blockers of components into account

From Svelte

Patch Changes
  • fix: properly defer document title until async work is complete (#17158)

  • fix: ensure deferred effects can be rescheduled later on (#17147)

  • fix: take blockers of components into account (#17153)

View originalPermalink
How 5.43.7 went

5.43.6

Fixed 1
  • Don't deactivate other batches

From Svelte

Patch Changes
  • fix: don't deactivate other batches (#17132)
View originalPermalink
How 5.43.6 went

5.43.5

Fixed 3
  • Ensure async static props/attributes are awaited
  • Wait on dependencies of async bindings
  • Await dependencies of style directives

From Svelte

Patch Changes
  • fix: ensure async static props/attributes are awaited (#17120)

  • fix: wait on dependencies of async bindings (#17120)

  • fix: await dependencies of style directives (#17120)

View originalPermalink
How 5.43.5 went

5.43.4

Fixed 1
  • reconnect deriveds to effect tree when time-travelling

From Svelte

Patch Changes
  • chore: simplify connection/disconnection logic (#17105)

  • fix: reconnect deriveds to effect tree when time-travelling (#17105)

View originalPermalink
How 5.43.4 went

5.43.3

Fixed 3
  • Ensure fork always accesses correct values
  • Change title only after any pending work has completed
  • Preserve symbols when creating derived rest properties

From Svelte

Patch Changes
  • fix: ensure fork always accesses correct values (#17098)

  • fix: change title only after any pending work has completed (#17061)

  • fix: preserve symbols when creating derived rest properties (#17096)

View originalPermalink
How 5.43.3 went

5.43.2

Fixed 1
  • treat each blocks with async dependencies as uncontrolled

From Svelte

Patch Changes
  • fix: treat each blocks with async dependencies as uncontrolled (#17077)
View originalPermalink
How 5.43.2 went

5.43.1

Fixed 1
  • Transform `$bindable` after `await` expressions

From Svelte

Patch Changes
  • fix: transform $bindable after await expressions (#17066)
View originalPermalink
How 5.43.1 went

5.43.0

Added 1
  • Out-of-order rendering support
Fixed 1
  • Settle batch after DOM updates

From Svelte

Minor Changes
  • feat: out-of-order rendering (#17038)
Patch Changes
  • fix: settle batch after DOM updates (#17054)
View originalPermalink
How 5.43.0 went

5.42.3

Fixed 2
  • handle <svelte:head> rendered asynchronously
  • don't restore batch in #await

From Svelte

Patch Changes
  • fix: handle <svelte:head> rendered asynchronously (#17052)

  • fix: don't restore batch in #await (#17051)

View originalPermalink
How 5.42.3 went

5.42.2

Fixed 1
  • Provide better error message for global variable assignments

From Svelte

Patch Changes
  • fix: better error message for global variable assignments (#17036)

  • chore: tweak memoizer logic (#17042)

View originalPermalink
How 5.42.2 went

5.42.1

Fixed 1
  • ignore fork discard() after commit()

From Svelte

Patch Changes
  • fix: ignore fork discard() after commit() (#17034)
View originalPermalink
How 5.42.1 went

5.42.0

Added 1
  • experimental fork API
Fixed 2
  • always allow setContext before first await in component
  • less confusing names for inspect errors

From Svelte

Minor Changes
  • feat: experimental fork API (#17004)
Patch Changes
  • fix: always allow setContext before first await in component (#17031)

  • fix: less confusing names for inspect errors (#17026)

View originalPermalink
How 5.42.0 went

5.41.4

Fixed 4
  • Take into account static blocks when determining transition locality
  • Coordinate mount of snippets with await expressions
  • Better optimization of await expressions
  • Flush pending changes after rendering failed snippet

From Svelte

Patch Changes
  • fix: take into account static blocks when determining transition locality (#17018)

  • fix: coordinate mount of snippets with await expressions (#17021)

  • fix: better optimization of await expressions (#17025)

  • fix: flush pending changes after rendering failed snippet (#16995)

View originalPermalink
How 5.41.4 went

5.41.3

Changed 1
  • Exclude Vite optimized dependencies from stack traces
Fixed 1
  • Skip repeatedly traversing the same derived to improve performance

From Svelte

Patch Changes
  • chore: exclude vite optimized deps from stack traces (#17008)

  • perf: skip repeatedly traversing the same derived (#17016)

View originalPermalink
How 5.41.3 went
View all

Discussion

If you publish Svelte, you can claim this product by proving you administer its repository.