# svelte ## 5.54.1 ### Patch Changes - fix: hydration comments during hmr ([#17975](https://github.com/sveltejs/svelte/pull/17975)) - fix: null out `effect.b` in `destroy_effect` ([#17980](https://github.com/sveltejs/svelte/pull/17980)) - fix: group sync statements ([#17977](https://github.com/sveltejs/svelte/pull/17977)) - fix: defer batch resolution until earlier intersecting batches have committed ([#17162](https://github.com/sveltejs/svelte/pull/17162)) - fix: properly invoke `iterator.return()` during reactivity loss check ([#17966](https://github.com/sveltejs/svelte/pull/17966)) - fix: remove trailing semicolon from {@const} tag printer ([#17962](https://github.com/sveltejs/svelte/pull/17962)) ## 5.54.0 ### Minor Changes - feat: allow `css`, `runes`, `customElement` compiler options to be functions ([#17951](https://github.com/sveltejs/svelte/pull/17951)) ### Patch Changes - fix: reinstate reactivity loss tracking ([#17801](https://github.com/sveltejs/svelte/pull/17801)) ## 5.53.13 ### Patch Changes - fix: ensure `$inspect` after top level await doesn't break builds ([#17943](https://github.com/sveltejs/svelte/pull/17943)) - fix: resume inert effects when they come from offscreen ([#17942](https://github.com/sveltejs/svelte/pull/17942)) - fix: don't eagerly access not-yet-initialized functions in template ([#17938](https://github.com/sveltejs/svelte/pull/17938)) - fix: discard batches made obsolete by commit ([#17934](https://github.com/sveltejs/svelte/pull/17934)) - fix: ensure "is standalone child" is correctly reset ([#17944](https://github.com/sveltejs/svelte/pull/17944)) - fix: remove nodes in boundary when work is pending and HMR is active ([#17932](https://github.com/sveltejs/svelte/pull/17932)) ## 5.53.12 ### Patch Changes - fix: update `select.__value` on `change` ([#17745](https://github.com/sveltejs/svelte/pull/17745)) - chore: add `invariant` helper for debugging ([#17929](https://github.com/sveltejs/svelte/pull/17929)) - fix: ensure deriveds values are correct across batches ([#17917](https://github.com/sveltejs/svelte/pull/17917)) - fix: handle async RHS in `assignment_value_stale` ([#17925](https://github.com/sveltejs/svelte/pull/17925)) - fix: avoid traversing clean roots ([#17928](https://github.com/sveltejs/svelte/pull/17928)) ## 5.53.11 ### Patch Changes - fix: remove `untrack` circular dependency ([#17910](https://github.com/sveltejs/svelte/pull/17910)) - fix: recover from errors that leave a corrupted effect tree ([#17888](https://github.com/sveltejs/svelte/pull/17888)) - fix: properly lazily evaluate RHS when checking for `assignment_value_stale` ([#17906](https://github.com/sveltejs/svelte/pull/17906)) - fix: resolve boundary in correct batch when hydrating ([#17914](https://github.com/sveltejs/svelte/pull/17914)) - chore: rebase batches after process, not during ([#17900](https://github.com/sveltejs/svelte/pull/17900)) ## 5.53.10 ### Patch Changes - fix: re-process batch if new root effects were scheduled ([#17895](https://github.com/sveltejs/svelte/pull/17895)) ## 5.53.9 ### Patch Changes - fix: better `bind:this` cleanup timing ([#17885](https://github.com/sveltejs/svelte/pull/17885)) ## 5.53.8 ### Patch Changes - fix: `{@html}` no longer duplicates content inside `contenteditable` elements ([#17853](https://github.com/sveltejs/svelte/pull/17853)) - fix: don't access inert block effects ([#17882](https://github.com/sveltejs/svelte/pull/17882)) - fix: handle asnyc updates within pending boundary ([#17873](https://github.com/sveltejs/svelte/pull/17873)) - perf: avoid re-traversing the effect tree after `$:` assignments ([#17848](https://github.com/sveltejs/svelte/pull/17848)) - chore: simplify scheduling logic ([#17805](https://github.com/sveltejs/svelte/pull/17805)) ## 5.53.7 ### Patch Changes - fix: correctly add \_\_svelte_meta after else-if chains ([#17830](https://github.com/sveltejs/svelte/pull/17830)) - perf: cache element interactivity and source line splitting in compiler ([#17839](https://github.com/sveltejs/svelte/pull/17839)) - chore: avoid rescheduling effects during branch commit ([#17837](https://github.com/sveltejs/svelte/pull/17837)) - perf: optimize CSS selector pruning ([#17846](https://github.com/sveltejs/svelte/pull/17846)) - fix: preserve original boundary errors when keyed each rows are removed during async updates ([#17843](https://github.com/sveltejs/svelte/pull/17843)) - perf: avoid O(n²) name scanning in scope `generate` and `unique` ([#17844](https://github.com/sveltejs/svelte/pull/17844)) - fix: preserve each items that are needed by pending batches ([#17819](https://github.com/sveltejs/svelte/pull/17819)) ## 5.53.6 ### Patch Changes - perf: optimize parser hot paths for faster compilation ([#17811](https://github.com/sveltejs/svelte/pull/17811)) - fix: `SvelteMap` incorrectly handles keys with `undefined` values ([#17826](https://github.com/sveltejs/svelte/pull/17826)) - fix: SvelteURL `search` setter now returns the normalized value, matching native URL behavior ([#17828](https://github.com/sveltejs/svelte/pull/17828)) - fix: visit synthetic value node during ssr ([#17824](https://github.com/sveltejs/svelte/pull/17824)) - fix: always case insensitive event handlers during ssr ([#17822](https://github.com/sveltejs/svelte/pull/17822)) - chore: more efficient effect scheduling ([#17808](https://github.com/sveltejs/svelte/pull/17808)) - perf: optimize compiler analysis phase ([#17823](https://github.com/sveltejs/svelte/pull/17823)) - fix: skip redundant batch.apply ([#17816](https://github.com/sveltejs/svelte/pull/17816)) - chore: null out current_batch before committing branches ([#17809](https://github.com/sveltejs/svelte/pull/17809)) ## 5.53.5 ### Patch Changes - fix: escape `innerText` and `textContent` bindings of `contenteditable` ([`0df5abcae223058ceb95491470372065fb87951d`](https://github.com/sveltejs/svelte/commit/0df5abcae223058ceb95491470372065fb87951d)) - fix: sanitize `transformError` values prior to embedding in HTML comments ([`0298e979371bb583855c9810db79a70a551d22b9`](https://github.com/sveltejs/svelte/commit/0298e979371bb583855c9810db79a70a551d22b9)) ## 5.53.4 ### Patch Changes - fix: set server context after async transformError ([#17799](https://github.com/sveltejs/svelte/pull/17799)) - fix: hydrate if blocks correctly ([#17784](https://github.com/sveltejs/svelte/pull/17784)) - fix: handle default parameters scope leaks ([#17788](https://github.com/sveltejs/svelte/pull/17788)) - fix: prevent flushed effects from running again ([#17787](https://github.com/sveltejs/svelte/pull/17787)) ## 5.53.3 ### Patch Changes - fix: render `:catch` of `#await` block with correct key ([#17769](https://github.com/sveltejs/svelte/pull/17769)) - chore: pin aria-query@5.3.1 ([#17772](https://github.com/sveltejs/svelte/pull/17772)) - fix: make string coercion consistent to `toString` ([#17774](https://github.com/sveltejs/svelte/pull/17774)) ## 5.53.2 ### Patch Changes - fix: update expressions on server deriveds ([#17767](https://github.com/sveltejs/svelte/pull/17767)) - fix: further obfuscate `node:crypto` import from overzealous static analysis ([#17763](https://github.com/sveltejs/svelte/pull/17763)) ## 5.53.1 ### Patch Changes - fix: handle shadowed function names correctly ([#17753](https://github.com/sveltejs/svelte/pull/17753)) ## 5.53.0 ### Minor Changes - feat: allow comments in tags ([#17671](https://github.com/sveltejs/svelte/pull/17671)) - feat: allow error boundaries to work on the server ([#17672](https://github.com/sveltejs/svelte/pull/17672)) ### Patch Changes - fix: use TrustedHTML to test for customizable `` with derived state in legacy mode ([#17645](https://github.com/sveltejs/svelte/pull/17645)) - fix: don't swallow `DOMException` when `media.play()` fails in `bind:paused` ([#17656](https://github.com/sveltejs/svelte/pull/17656)) - chore: provide proper public type for `parseCss` result ([#17654](https://github.com/sveltejs/svelte/pull/17654)) - fix: robustify blocker calculation ([#17676](https://github.com/sveltejs/svelte/pull/17676)) - fix: reduce if block nesting ([#17662](https://github.com/sveltejs/svelte/pull/17662)) ## 5.50.1 ### Patch Changes - fix: render boolean attribute values as empty strings for XHTML compliance ([#17648](https://github.com/sveltejs/svelte/pull/17648)) - fix: prevent async render tag hydration mismatches ([#17652](https://github.com/sveltejs/svelte/pull/17652)) ## 5.50.0 ### Minor Changes - feat: allow use of createContext when instantiating components programmatically ([#17575](https://github.com/sveltejs/svelte/pull/17575)) ### Patch Changes - fix: ensure infinite effect loops are cleared after flushing ([#17601](https://github.com/sveltejs/svelte/pull/17601)) - fix: allow `{#key NaN}` ([#17642](https://github.com/sveltejs/svelte/pull/17642)) - fix: detect store in each block expression regardless of AST shape ([#17636](https://github.com/sveltejs/svelte/pull/17636)) - fix: treat `` like `