- Call `onerror` and provide a working `reset` when hydrating a failed boundary
- Preserve select selection when spread attributes omit value
Svelte
Frameworks & LibrariesCybernetically enhanced web apps.
Release activity
| May | Jun | Jul | Aug | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunday | No releases on Apr 19, 2026 | No releases on Apr 26, 2026 | No releases on May 3, 2026 | No releases on May 10, 2026 | No releases on May 17, 2026 | No releases on May 24, 2026 | No releases on May 31, 2026 | 1 release on Jun 7, 2026 | No releases on Jun 14, 2026 | No releases on Jun 21, 2026 | No releases on Jun 28, 2026 | No releases on Jul 5, 2026 | No releases on Jul 12, 2026 | No releases on Jul 19, 2026 | No releases on Jul 26, 2026 | No releases on Aug 2, 2026 |
| Monday | No releases on Apr 20, 2026 | No releases on Apr 27, 2026 | No releases on May 4, 2026 | No releases on May 11, 2026 | 1 release on May 18, 2026 | No releases on May 25, 2026 | 1 release on Jun 1, 2026 | No releases on Jun 8, 2026 | No releases on Jun 15, 2026 | No releases on Jun 22, 2026 | No releases on Jun 29, 2026 | No releases on Jul 6, 2026 | No releases on Jul 13, 2026 | 1 release on Jul 20, 2026 | No releases on Jul 27, 2026 | No releases on Aug 3, 2026 |
| Tuesday | No releases on Apr 21, 2026 | No releases on Apr 28, 2026 | No releases on May 5, 2026 | No releases on May 12, 2026 | No releases on May 19, 2026 | No releases on May 26, 2026 | No releases on Jun 2, 2026 | No releases on Jun 9, 2026 | No releases on Jun 16, 2026 | 1 release on Jun 23, 2026 | No releases on Jun 30, 2026 | No releases on Jul 7, 2026 | 1 release on Jul 14, 2026 | No releases on Jul 21, 2026 | No releases on Jul 28, 2026 | No releases on Aug 4, 2026 |
| Wednesday | No releases on Apr 22, 2026 | No releases on Apr 29, 2026 | No releases on May 6, 2026 | No releases on May 13, 2026 | 1 release on May 20, 2026 | 1 release on May 27, 2026 | No releases on Jun 3, 2026 | No releases on Jun 10, 2026 | No releases on Jun 17, 2026 | No releases on Jun 24, 2026 | No releases on Jul 1, 2026 | No releases on Jul 8, 2026 | No releases on Jul 15, 2026 | No releases on Jul 22, 2026 | No releases on Jul 29, 2026 | No releases on Aug 5, 2026 |
| Thursday | 1 release on Apr 23, 2026 | No releases on Apr 30, 2026 | No releases on May 7, 2026 | 2 releases on May 14, 2026 | No releases on May 21, 2026 | No releases on May 28, 2026 | 1 release on Jun 4, 2026 | No releases on Jun 11, 2026 | No releases on Jun 18, 2026 | No releases on Jun 25, 2026 | No releases on Jul 2, 2026 | No releases on Jul 9, 2026 | 1 release on Jul 16, 2026 | No releases on Jul 23, 2026 | No releases on Jul 30, 2026 | No releases on Aug 6, 2026 |
| Friday | No releases on Apr 24, 2026 | No releases on May 1, 2026 | No releases on May 8, 2026 | No releases on May 15, 2026 | No releases on May 22, 2026 | 1 release on May 29, 2026 | No releases on Jun 5, 2026 | No releases on Jun 12, 2026 | No releases on Jun 19, 2026 | No releases on Jun 26, 2026 | No releases on Jul 3, 2026 | No releases on Jul 10, 2026 | No releases on Jul 17, 2026 | 1 release on Jul 24, 2026 | No releases on Jul 31, 2026 | No releases on Aug 7, 2026 |
| Saturday | No releases on Apr 25, 2026 | No releases on May 2, 2026 | No releases on May 9, 2026 | No releases on May 16, 2026 | No releases on May 23, 2026 | No releases on May 30, 2026 | No releases on Jun 6, 2026 | No releases on Jun 13, 2026 | No releases on Jun 20, 2026 | No releases on Jun 27, 2026 | No releases on Jul 4, 2026 | No releases on Jul 11, 2026 | No releases on Jul 18, 2026 | No releases on Jul 25, 2026 | No releases on Aug 1, 2026 |
100 releases since Oct 18, 2025, busiest day 4
Changelog
- Provide `indent` option for `print`
Patch Changes
- chore: provide
indentoption forprint(#18474)
- skip unnecessary blocker analysis when compiling components without top-level await
- rerun derived that had an abort controller on reconnection
- 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
- Transform computed keys in keyed {#each} destructuring patterns
- Chain preprocessor sourcemaps with an empty sources[0] instead of dropping them
- Clear previous_task reference after abort in Tween to prevent memory leak on interrupted tweens
- Don't treat declaration tags as parts inside each blocks
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)
- 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
Patch Changes
-
fix: include wrapping parentheses in
{@const}declaratorendposition (#18436) -
fix: always unset reactivity context after restoring it (#18453)
-
fix: don't notify
searchParamssubscribers 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)
- Ignore errors that occur in destroyed effects
- Type BigInts in $state.snapshot(...) return values
- 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
Patch Changes
- 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
- More robust parsing of declaration tags with regards to type
- Preserve newlines in spread input values when the type attribute is applied after value
- Update SvelteURLSearchParams when setting duplicate keys to the same joined value
- Check references for blockers on server, too
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_locallywarnings for$deriveddeclarations in declaration tags (#18348) -
fix: tolerate whitespace before
let/constin 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
typeattribute is applied aftervalue(#18345) -
fix: update
SvelteURLSearchParamswhen setting duplicate keys to the same joined value (#18336) -
fix: check references for blockers on server, too (#18352)
- Allow declarations in the template
- 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
- Walk composedPath() directly in delegated event propagation for improved performance
- Add tag name to a11y_click_events_have_key_events warning
- 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
- Settle discarded batch
- Declare let: directives before {@const} declarations on slotted elements
- Resume outro-ed branches if they were kept around
- Avoid waterfall-warning when async resolves to same value
- Correctly coordinate component-level effects inside async blocks
- Make unnecessary commit work less likely
- Catch rejected promises while merging/committing
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
@constblockers 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_eventswarning (#18272) -
fix: catch rejected promises while merging/committing (#18266)
- 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
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)
- 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
Patch Changes
-
fix(print): handle
svelte:bodyand 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)
- Move Svelte runtime properties to symbols
- Prevent XSS on hydratable from user contents
- Disallow empty attribute names during SSR
- Harden regex
Patch Changes
-
fix: prevent XSS on
hydratablefrom user contents (a16ebc67bbcf8f708360195687e1b2719463e1a4) -
chore: bump devalue (#18219)
-
fix: disallow empty attribute names during SSR (
547853e2406a2147ad7fb5ffeba95b01bd9642da) -
fix: harden regex (
d2375e2ebcab5c88feb5652f1a9d621b8f06b259) -
fix: move Svelte runtime properties to symbols (
e1cbbd96441e82c9eb8a23a2903c0d06d3cda991)
- Allow null for pending in typings
- 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()
- Account for proxified instance when updating bind:this
- Ensure scheduled batch is flushed if not obsolete
- Resolve stale deriveds with latest value
- Correctly compile component member expressions for SSR
- Reset source.updated stack traces after flush
- Replace async blocking strategy with merging
- Allow @debug tags to reference awaited variables
- Re-run fallback props if dependencies update
- Abort running obsolete async branches
- Ignore comments when reading CSS values
- Wrap Promise.all in save during SSR
- Ignore false-positive errors of $inspect dependencies
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
nullforpendingin 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_pendingcalls (#18183) -
fix: correctly compile component member expressions for SSR (#18192)
-
fix: reset
source.updatedstack traces afterflush(#18196) -
fix: replacing async 'blocking' strategy with 'merging' (#18205)
-
fix: allow
@debugtags 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.allinsaveduring SSR (#18178) -
fix: ignore false-positive errors of
$inspectdependencies (#18106)
- don't mark deriveds while an effect is updating
- do not dispatch introstart event with animation of animate directive
- Never mark a child effect root as inert
- Reset context after waiting on blockers of @const expressions
- Keep flushing new eager effects
- 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
Patch Changes
-
fix: ensure proper HMR updates for dynamic components (#18079)
-
fix: correctly calculate
@constblockers (#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)
- 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
- Never set derived.v inside fork
- Skip rebase logic in non-async mode
- Don't reset status of uninitialized deriveds
Patch Changes
-
fix: invalidate
@consttags based on visible references in legacy mode (#18041) -
fix: handle parens in template expressions more robustly (#18075)
-
fix: disallow
--inidPrefix(#18038) -
fix: correct types for
ontoggleon<details>elements (#18063) -
fix: don't override
$destroy/set/oninstance 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)
- 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
Patch Changes
-
fix: correctly handle bindings on the server (#18009)
-
fix: prevent hydration error on async
{@html ...}(#17999) -
fix: cleanup
superTypeParametersinClassDeclarations/ClassExpression(#18015) -
fix: improve duplicate module import error message (#18016)
-
fix: reschedule new effects in prior batches (#18021)
- Export TweenOptions, SpringOptions, SpringUpdateOptions and Updater from svelte/motion
- Ensure HMR wrapper forwards correct start/end nodes to active effect
- 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
Patch Changes
-
fix: hydration comments during hmr (#17975)
-
fix: null out
effect.bindestroy_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)
- Allow `css`, `runes`, `customElement` compiler options to be functions
- Reinstate reactivity loss tracking
- 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
Patch Changes
-
fix: ensure
$inspectafter 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)
- add `invariant` helper for debugging
- update `select.__value` on `change` event
- ensure derived values are correct across batches
- handle async RHS in `assignment_value_stale`
- avoid traversing clean roots
- Rebase batches after process, not during
- 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
Patch Changes
-
fix: remove
untrackcircular 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)
- Re-process batch if new root effects were scheduled
Patch Changes
- fix: re-process batch if new root effects were scheduled (#17895)
- better bind:this cleanup timing
Patch Changes
- fix: better
bind:thiscleanup timing (#17885)
- avoid re-traversing the effect tree after $: assignments
- {@html} no longer duplicates content inside contenteditable elements
- don't access inert block effects
- handle async updates within pending boundary
Patch Changes
-
fix:
{@html}no longer duplicates content insidecontenteditableelements (#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)
- Cache element interactivity and source line splitting in compiler
- Optimize CSS selector pruning
- Avoid O(n²) name scanning in scope generate and unique
- 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
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
generateandunique(#17844) -
fix: preserve each items that are needed by pending batches (#17819)
- Optimize parser hot paths for faster compilation
- More efficient effect scheduling
- Optimize compiler analysis phase
- Null out current_batch before committing branches
- 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
Patch Changes
-
perf: optimize parser hot paths for faster compilation (#17811)
-
fix:
SvelteMapincorrectly handles keys withundefinedvalues (#17826) -
fix: SvelteURL
searchsetter 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)
- Escape innerText and textContent bindings of contenteditable
- Sanitize transformError values prior to embedding in HTML comments
Patch Changes
-
fix: escape
innerTextandtextContentbindings ofcontenteditable(0df5abcae223058ceb95491470372065fb87951d) -
fix: sanitize
transformErrorvalues prior to embedding in HTML comments (0298e979371bb583855c9810db79a70a551d22b9)
- Set server context after async transformError
- Hydrate if blocks correctly
- Handle default parameters scope leaks
- Prevent flushed effects from running again
- Render `:catch` of `#await` block with correct key
- Make string coercion consistent to `toString`
- Update expressions on server deriveds
- Further obfuscate node:crypto import from overzealous static analysis
- Handle shadowed function names correctly
Patch Changes
- fix: handle shadowed function names correctly (#17753)
- Allow comments in tags
- Allow error boundaries to work on the server
- Use TrustedHTML to test for customizable select support, where necessary
- Ensure head effects are kept in the effect tree
Minor Changes
Patch Changes
- Support TrustedHTML in {@html} expressions
- Repair dynamic component truthy/falsy hydration mismatches
- Re-run non-render-bound deriveds on the server
- Upgrade devalue
- 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
Patch Changes
-
fix: check to make sure
svelte:elementtags are valid during SSR (73098bb26c6f06e7fd1b0746d817d2c5ee90755f) -
fix: misc option escaping and backwards compatibility (#17741)
-
fix: strip event handlers during SSR (
a0c7f289156e9fafaeaf5ca14af6c06fe9b9eae5) -
fix: replace usage of
for inwithfor of Object.keys(f89c7ddd7eebaa1ef3cc540400bec2c9140b330c) -
fix: always escape option body in SSR (
f7c80da18c215e3727c2a611b0b8744cc6e504c5) -
chore: upgrade
devalue(#17739)
- Detect and error on non-idempotent each block keys in dev mode
- 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
Patch Changes
- Take async into consideration for dev delegated handlers
- Emit state_referenced_locally warning for non-destructured props
- don't crash on undefined document.contentType
- use symbols for encapsulated event delegation
- Use TrustedTypes for HTML handling where supported
- 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
- 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>
Patch Changes
-
fix: take into account
nodeNamecase sensitivity on XHTML pages (#17689) -
fix: render
multipleandselectedattributes 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
$effecterrors to<svelte:boundary>(#17684)
- Provide proper public type for parseCss result
- 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
Patch Changes
-
fix: resolve
effect_update_depth_exceededwhen usingbind:valueon<select>with derived state in legacy mode (#17645) -
fix: don't swallow
DOMExceptionwhenmedia.play()fails inbind:paused(#17656) -
chore: provide proper public type for
parseCssresult (#17654) -
fix: robustify blocker calculation (#17676)
-
fix: reduce if block nesting (#17662)
- Render boolean attribute values as empty strings for XHTML compliance
- Prevent async render tag hydration mismatches
- Allow use of createContext when instantiating components programmatically
- 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
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
@seeand@linktags (#17617) -
fix: properly hydrate already-resolved async blocks (#17641)
-
fix: emit
each_key_duplicateerror in production (#16724) -
fix: exit resolved async blocks on correct node when hydrating (#17640)
- Avoid erroneous async derived expressions for blocks
- Avoid Cloudflare warnings about not having the node:crypto module
- Reschedule effects inside unskipped branches
- Remove SvelteKit data attributes from elements.d.ts
- 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>
- Allow passing ShadowRootInit object to custom element shadow option
- 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
Minor Changes
- feat: allow passing
ShadowRootInitobject to custom elementshadowoption (#17088)
Patch Changes
-
fix: throw for unset
createContextget 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
popoverelements 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)
- 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
- avoid duplicating escaped characters in CSS AST
Patch Changes
- fix: avoid duplicating escaped characters in CSS AST (#17554)
- 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
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)
- export `wait` function from internal client index
Patch Changes
- fix: export
waitfunction from internal client index (#17530)
- 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
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)
- Export `parseCss` from `svelte/compiler`
- Handle non-string values in `svelte:element` `this` attribute
- Faster deduplication of dependencies
- Trigger selectedcontent reactivity
Patch Changes
- fix: trigger
selectedcontentreactivity (#17486)
- Customizable <select> elements
- Mark subtree of svelte boundary as dynamic
- Don't reset static elements with debug/snippets
- use devalue.uneval to serialize hydratable keys
Patch Changes
- fix: use
devalue.unevalto serializehydratablekeys (ef81048e238844b729942441541d6dcfe6c8ccca)
- Reconnect clean deriveds when they are read in a reactive context
Patch Changes
- fix: reconnect clean deriveds when they are read in a reactive context (#17362)
- Type currentTarget in on function
- Skip static optimisation for stateless deriveds after await
- Prevent infinite loop when HMRing a component with an await
- Add csp option to render() function
- Emit hashes when using hydratable
Minor Changes
- feat: Add
cspoption torender(...), and emit hashes when usinghydratable(#17338)
- fix race condition when importing AsyncLocalStorage
Patch Changes
- fix: race condition when importing
AsyncLocalStorage(#17350)
- Correctly reschedule deferred effects when reviving a batch after async work
- Correctly print !doctype during print
- Set AST root.start to 0 and root.end to template.length
- Prevent erroneous state_referenced_locally warnings on prop fallbacks
- Add <textarea wrap="off"> as a valid attribute value
- Add more css selectors to print()
- Don't crash on hydratable serialization failure
- Don't issue a11y warning for <video> without captions if it has no src
- Add srcObject to permitted <audio>/<video> attributes
- correctly reconcile each blocks after outroing branches are resumed
- destroy each items after siblings are resumed
- Move DOM-related effect properties to effect.nodes
- Allow $props.id() to occur after an await
- Keep reactions up to date even when read outside of effect
- Add props to state_referenced_locally
- Preserve node locations for better sourcemaps
- Handle cross-realm Promises in hydratable
- array destructuring after await
- throw on invalid {@tag}s
- Link offscreen items and last effect in each block correctly
Patch Changes
- fix: link offscreen items and last effect in each block correctly (#17240)
- Add print(...) function
Minor Changes
- feat: add
print(...)function (#16188)
- 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
- Add hydratable API for marking components as hydratable
Minor Changes
- feat:
hydratableAPI (#17154)
- Lift the restriction that flushSync cannot be called in effects
- Don't execute attachments and attribute effects eagerly
- Store forked derived values
- 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
- don't set derived values during time traveling
Patch Changes
- fix: don't set derived values during time traveling (#17200)
- maintain correct linked list of effects when updating each blocks
Patch Changes
- fix: maintain correct linked list of effects when updating each blocks (#17191)
- don't use tracing overeager during dev
- don't cancel transition of already outroing elements
- Avoid other batches running with queued root effects of main batch
Patch Changes
- fix: avoid other batches running with queued root effects of main batch (#17145)
- 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
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
@constin boundary hydrates correctly (#17165) -
fix: take blockers into account when creating
#awaitblocks (#17137) -
fix: parallelize async
@consts in the template (#17165)
- each block losing reactivity when items removed while promise pending
Patch Changes
- fix: each block losing reactivity when items removed while promise pending (#17150)
Patch Changes
- fix: don't deactivate other batches (#17132)
Patch Changes
- fix: treat each blocks with async dependencies as uncontrolled (#17077)
Patch Changes
- fix: transform
$bindableafterawaitexpressions (#17066)
Patch Changes
- fix: ignore fork
discard()aftercommit()(#17034)
More in Frameworks & Libraries
View allThe library for web and native user interfaces.
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.
Fundamental package for array-based numerical computing in Python.
esbuild release notes.
aiobotocore release notes.