Svelte 5.57.0

5.57.0
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 original

Upgraded? How did it go?

Discussion