# Svelte changelog ## Unreleased * Fix unused export warning for props used as stores ([#4021](https://github.com/sveltejs/svelte/issues/4021)) * Fix `{:then}` without resolved value containing `{#each}` ([#4022](https://github.com/sveltejs/svelte/issues/4022)) * Fix incorrect code generated with `loopGuardTimeout` ([#4034](https://github.com/sveltejs/svelte/issues/4034)) * Fix `{:then}` containing `{#if}` ([#4044](https://github.com/sveltejs/svelte/issues/4044)) * Fix bare `import`s in `format: 'cjs'` output mode ([#4055](https://github.com/sveltejs/svelte/issues/4050)) * Warn when using a known global as a component name ([#4070](https://github.com/sveltejs/svelte/issues/4070)) ## 3.16.0 * Use bitmasks to track changes ([#3945](https://github.com/sveltejs/svelte/pull/3945)) * Fix heisenbug with component styles ([#3977](https://github.com/sveltejs/svelte/issues/3977)) * Do not warn about missing expected props for `export function foo() {}` ([#3954](https://github.com/sveltejs/svelte/issues/3954)) * Fix `context="module"` exports with the same name as an instance variable ([#3983](https://github.com/sveltejs/svelte/issues/3983)) * Fix binding to contextual values from `{#each}` blocks referring to global variables ([#3992](https://github.com/sveltejs/svelte/issues/3992)) * Use `requestAnimationFrame` callback argument for smoother transitions ([#4014](https://github.com/sveltejs/svelte/pull/4014)) * Fix `listen_dev` argument order ([#4016](https://github.com/sveltejs/svelte/pull/4016)) ## 3.15.0 * Hide commented sections from preprocessors ([#3894](https://github.com/sveltejs/svelte/pull/3894)) * Add `seeking` and `ended` bindings to media elements ([#3650](https://github.com/sveltejs/svelte/pull/3650)) * Add `videoWidth` and `videoHeight` bindings to video elements ([#3927](https://github.com/sveltejs/svelte/pull/3927)) * Fix for dynamic event handlers ([#3934](https://github.com/sveltejs/svelte/pull/3934)) * Handle scale transforms when using the `flip` animation ([#3555](https://github.com/sveltejs/svelte/issues/3555)) * Fix some code generation bugs ([#3929](https://github.com/sveltejs/svelte/issues/3929), [#3939](https://github.com/sveltejs/svelte/issues/3939)) * Add `aria-hidden="true"` to objects generated when adding resize-listeners, to improve accessibility ([#3948](https://github.com/sveltejs/svelte/issues/3948)) ## 3.14.1 * Deconflict block method names with other variables ([#3900](https://github.com/sveltejs/svelte/issues/3900)) * Fix entity encoding issue in text nodes with constant expressions ([#3911](https://github.com/sveltejs/svelte/issues/3911)) * Make code for unknown prop warnings compatible with older js engines ([#3914](https://github.com/sveltejs/svelte/issues/3914)) ## 3.14.0 * Add `loopGuardTimeout` option that augments `for`/`while` loops to prevent infinite loops, primarily for use in the REPL ([#3887](https://github.com/sveltejs/svelte/pull/3887)) * Keep component bindings in sync when changed in reactive statements ([#3382](https://github.com/sveltejs/svelte/issues/3382)) * Update attributes before bindings ([#3857](https://github.com/sveltejs/svelte/issues/3857)) * Prevent variable naming conflict ([#3899](https://github.com/sveltejs/svelte/issues/3899)) ## 3.13.0 * New structured code generation, which eliminates a number of edge cases and obscure bugs ([#3539](https://github.com/sveltejs/svelte/pull/3539)) Also: * Fix `{#each}` context not shadowing outer scope when using `bind:` ([#1565](https://github.com/sveltejs/svelte/issues/1565)) * Fix edge cases in matching selectors against elements ([#1710](https://github.com/sveltejs/svelte/issues/1710)) * Fix several bugs related to interaction of `{...spread}` attributes with other features ([#2721](https://github.com/sveltejs/svelte/issues/2721), [#2916](https://github.com/sveltejs/svelte/issues/2916), [#3421](https://github.com/sveltejs/svelte/issues/3421), [#3681](https://github.com/sveltejs/svelte/issues/3681), [#3764](https://github.com/sveltejs/svelte/issues/3764), [#3790](https://github.com/sveltejs/svelte/issues/3790)) * Allow exiting a reactive block early with `break $` ([#2828](https://github.com/sveltejs/svelte/issues/2828)) * Fix binding to props that have been renamed with `export { ... as ... }` ([#3508](https://github.com/sveltejs/svelte/issues/3508)) * Fix application of style scoping class in cases of ambiguity ([#3544](https://github.com/sveltejs/svelte/issues/3544)) * Check attributes have changed before setting them to avoid image flicker ([#3579](https://github.com/sveltejs/svelte/pull/3579)) * Fix generating malformed code for `{@debug}` tags with no dependencies ([#3588](https://github.com/sveltejs/svelte/issues/3588)) * Fix generated code in specific case involving compound ifs and child components ([#3595](https://github.com/sveltejs/svelte/issues/3595)) * Fix `bind:this` binding to a store ([#3591](https://github.com/sveltejs/svelte/issues/3591)) * Use safer `HTMLElement` check before extending class ([#3608](https://github.com/sveltejs/svelte/issues/3608)) * Add `location` as a known global ([#3619](https://github.com/sveltejs/svelte/pull/3619)) * Support `{#await}` with `{:catch}` but no `{:then}` ([#3623](https://github.com/sveltejs/svelte/issues/3623)) * Clean up dead code emitted for ``s ([#3631](https://github.com/sveltejs/svelte/issues/3631)) * Fix tracking of dependencies of compound assignments in reactive statements ([#3634](https://github.com/sveltejs/svelte/issues/3634)) * Flush changes in newly attached block when using `{#await}` ([#3660](https://github.com/sveltejs/svelte/issues/3660)) * Throw exception immediately when calling `createEventDispatcher()` after component instantiation ([#3667](https://github.com/sveltejs/svelte/pull/3667)) * Fix globals shadowing contextual template scope ([#3674](https://github.com/sveltejs/svelte/issues/3674)) * Fix `` bindings to stores ([#3832](https://github.com/sveltejs/svelte/issues/3832)) * Deconflict generated var names with builtins ([#3724](https://github.com/sveltejs/svelte/issues/3724)) * Allow spring/tweened values to be initially undefined ([#3761](https://github.com/sveltejs/svelte/issues/3761)) * Warn if using `` without `customElement: true` option ([#3782](https://github.com/sveltejs/svelte/pull/3782)) * Add `Event` to list of known globals ([#3810](https://github.com/sveltejs/svelte/pull/3810)) * Throw helpful error on empty CSS declaration ([#3801](https://github.com/sveltejs/svelte/issues/3801)) * Support `easing` param on `fade` transition ([#3823](https://github.com/sveltejs/svelte/pull/3823)) * Generate valid names from filenames with unicode characters ([#3845](https://github.com/sveltejs/svelte/issues/3845)) * Don't generate any code for markup-less components ([#2200](https://github.com/sveltejs/svelte/issues/2200)) * Deconflict with internal name `block` ([#3854](https://github.com/sveltejs/svelte/issues/3854)) * Set attributes before bindings, to prevent erroneous assignments to `input.files` ([#3828](https://github.com/sveltejs/svelte/issues/3828)) * Smarter unused CSS detection ([#3825](https://github.com/sveltejs/svelte/pull/3825)) * Allow dynamic event handlers ([#3040](https://github.com/sveltejs/svelte/issues/3040)) * Prevent erroneous `"undefined"` class name ([#3876](https://github.com/sveltejs/svelte/pull/3876)) * Prevent resetting of `src` attribute unless changed ([#3579](https://github.com/sveltejs/svelte/pull/3579)) * Prevent hydration of void element 'children' ([#3882](https://github.com/sveltejs/svelte/issues/3882)) * Hoist globals even if mentioned in `'` string occurence breaking pages ([#349](https://github.com/sveltejs/svelte/pull/349)) * Allow reference to whitelisted globals without properties ([#333](https://github.com/sveltejs/svelte/pull/333)) * Don't remove ` ` incorrectly ([#348](https://github.com/sveltejs/svelte/issues/348)) * `let` -> `var` in `addCss` block ([#351](https://github.com/sveltejs/svelte/pull/351)) ## 1.10.2 * Accept any case for doctype declarations ([#336](https://github.com/sveltejs/svelte/issues/336)) * Allow non-top-level `