releases.shpreview
Home/Svelte/Svelte

Svelte

The Svelte compiler — a UI component framework that compiles components to efficient vanilla JavaScript at build time.

Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMayJun
Less
More
Releases23Avg Interval3dAvg Cadence10/mo
Patch Changes
  • fix: ignore errors that occur in destroyed effects (#18384)

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)
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)

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)

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)