# Svelte changelog ## 1.31.0 * Add `legacy` compile option, which adds IE9 compatibility ([#773](https://github.com/sveltejs/svelte/issues/773)) ## 1.30.0 * Update all component bindings simultaneously ([#760](https://github.com/sveltejs/svelte/issues/760)) * Fix `@keyframes` atrules with `from` and `to` selectors ([#774](https://github.com/sveltejs/svelte/issues/774)) ## 1.29.3 * Only recompute tag and attribute values if they could have changed ([#768](https://github.com/sveltejs/svelte/issues/768)) * Fix CSS scoping with multiple levels of descendant selectors ([#767](https://github.com/sveltejs/svelte/issues/767)) ## 1.29.2 * Preserve space before non-parenthesized media query expression ([#759](https://github.com/sveltejs/svelte/issues/759)) * Call `create()` on new iterations of static each blocks ([#762](https://github.com/sveltejs/svelte/issues/762)) * Use `change` events as well as `input` events to bind range inputs ([#740](https://github.com/sveltejs/svelte/issues/740)) ## 1.29.1 * Replace `set` and `destroy` with `noop` when component is destroyed ([#744](https://github.com/sveltejs/svelte/issues/744)) ## 1.29.0 * Add static `setup` method ([#578](https://github.com/sveltejs/svelte/issues/578)) * Hoist if block selectors ([#751](https://github.com/sveltejs/svelte/pull/751)) * More sigil escaping fixes ([#750](https://github.com/sveltejs/svelte/pull/750)) ## 1.28.1 * Fix unescaping of special words in SSR mode ([#741](https://github.com/sveltejs/svelte/issues/741)) ## 1.28.0 * Support `ref:foo` as a CSS selector ([#693](https://github.com/sveltejs/svelte/issues/693)) * Prevent magic-string bugs by only minifying CSS combinators if `cascade: false` ([#743](https://github.com/sveltejs/svelte/issues/743)) * Don't throw an error if component is destroyed twice ([#643](https://github.com/sveltejs/svelte/issues/643)) ## 1.27.0 * Minify CSS and remove unused styles ([#697](https://github.com/sveltejs/svelte/issues/697)) * Optimize ternary expressions when excluding unused CSS ([#696](https://github.com/sveltejs/svelte/issues/696)) * Clear refs after `ondestroy` callbacks fire ([#706](https://github.com/sveltejs/svelte/issues/706)) * Prevent certain forms of component binding blowback ([#721](https://github.com/sveltejs/svelte/issues/721)) * Use helper to encapsulate styles ([#375](https://github.com/sveltejs/svelte/issues/375)) * Event propagation shorthand — `on:foo` equals `on:foo='fire("foo", event)` ([#638](https://github.com/sveltejs/svelte/issues/638)) * Allow `refs.*` in event handlers, and validate them ([#686](https://github.com/sveltejs/svelte/issues/686)) ## 1.26.2 * Unescape `#` characters ([#722](https://github.com/sveltejs/svelte/issues/722)) ## 1.26.1 * Fix select binding regression ([#724](https://github.com/sveltejs/svelte/issues/724)) ## 1.26.0 * Enforce correct order of operations when initialising ([#708](https://github.com/sveltejs/svelte/issues/708) and [#714](https://github.com/sveltejs/svelte/issues/714)) * Ensure data is up-to-date when re-rendering yield block ([#711](https://github.com/sveltejs/svelte/issues/711)) * Fix unescaping of strings, preserve at-rules in CSS ([#712](https://github.com/sveltejs/svelte/issues/712)) * Preserve whitespace at end of each blocks ([#713](https://github.com/sveltejs/svelte/issues/713)) ## 1.25.1 * Better CSS sourcemaps ([#716](https://github.com/sveltejs/svelte/pull/716)) ## 1.25.0 * Fix hoisted event handlers ([#699](https://github.com/sveltejs/svelte/issues/699)) * Fire `intro.start` and `outro.start` events ([#702](https://github.com/sveltejs/svelte/issues/702)) * Preserve order of components in keyed each blocks ([#700](https://github.com/sveltejs/svelte/issues/700)) * Add `cssMap` property to compiler output ([#698](https://github.com/sveltejs/svelte/pull/698/)) ## 1.24.0 * Deconflict names with imports in SSR compiler ([#655](https://github.com/sveltejs/svelte/issues/655)) * Improved transition performance ([#670](https://github.com/sveltejs/svelte/pull/670)) * Run transitions on initial render ([#651](https://github.com/sveltejs/svelte/issues/651)) * Add dev mode warning if `hydrate` is true but `hydratable` was false ([#664](https://github.com/sveltejs/svelte/issues/664)) * Manipulate sourcemap to make missing loop values obvious ([#683](https://github.com/sveltejs/svelte/pull/683)) * Only add CSS scoping attributes where necessary ([#679](https://github.com/sveltejs/svelte/issues/679)) * Warn on unused CSS selectors ([#678](https://github.com/sveltejs/svelte/issues/678)) * Fix `` binding, if unspecified ([#639](https://github.com/sveltejs/svelte/issues/639)) * Mark indirect dependencies of `