# Svelte changelog ## 1.51.1 * Only escape <, > and & characters ([#1082](https://github.com/sveltejs/svelte/issues/1082)) ## 1.51.0 * Lock `scroll` bindings ([#1071](https://github.com/sveltejs/svelte/issues/1071)) * Escape HTML entities when compiling to static HTML ([#1066](https://github.com/sveltejs/svelte/issues/1066)) * Apply a11y warnings to SVG `` attributes with `xlink:href` ([#1008](https://github.com/sveltejs/svelte/issues/1008)) ## 1.50.1 * Prevent main fragment being created twice in custom elements ([#1064](https://github.com/sveltejs/svelte/pull/1064)) ## 1.50.0 * Detect unused/misplaced components ([#1039](https://github.com/sveltejs/svelte/issues/1039)) * Warn on unused event definitions/transitions ([#1051](https://github.com/sveltejs/svelte/issues/1051)) * Remove whitespace inside `<:Head>` ([#1026](https://github.com/sveltejs/svelte/issues/1026)) * Optimise `` ([#1027](https://github.com/sveltejs/svelte/issues/1027)) * Add `bind: false` option to disable two-way binding ([#54](https://github.com/sveltejs/svelte/issues/54)) ## 1.49.3 * Return `html` from SSR compiler `render().toString()` methods ([#1044](https://github.com/sveltejs/svelte/issues/1044)) * Correctly reinitialise dynamic components ([#1040](https://github.com/sveltejs/svelte/issues/1040)) * Allow `<option>` outside `<select>` ([#1022](https://github.com/sveltejs/svelte/issues/1022)) * Fix data references in await-block event handlers ([#1032](https://github.com/sveltejs/svelte/issues/1032)) ## 1.49.2 * Add `store.umd.js` ([#967](https://github.com/sveltejs/svelte/issues/967)) * Warn on use of `this` inside computed properties ([#1033](https://github.com/sveltejs/svelte/pull/1033)) ## 1.49.1 * Pass `store` to children in SSR mode ([#1029](https://github.com/sveltejs/svelte/pull/1029)) ## 1.49.0 * Support `store` as a component property ([#1028](https://github.com/sveltejs/svelte/pull/1028)) ## 1.48.0 * Added `<:Head>` component for injecting contents into document head ([#1013](https://github.com/sveltejs/svelte/issues/1013))) * SSR `render(...)` method now returns a `{ html, css: { code, map }, head }` object ([#1013](https://github.com/sveltejs/svelte/issues/1013)) * SSR `renderCss(...)` method is deprecated ([#1013](https://github.com/sveltejs/svelte/issues/1013)) * Add a `preload` function to components ([#1015](https://github.com/sveltejs/svelte/issues/1015)) * Expose `this.root` on nested components ([#1023](https://github.com/sveltejs/svelte/pull/1023)) ## 1.47.2 * Deconflict computed properties against arguments to `_recompute` ([#1012](https://github.com/sveltejs/svelte/issues/1012)) * Allow `await` blocks in slots ([#1018](https://github.com/sveltejs/svelte/issues/1018)) * Allow components without slots to have whitespace as only child ([#1007](https://github.com/sveltejs/svelte/issues/1007)) * Correctly set `toString` on `CompileError` ([#1016](https://github.com/sveltejs/svelte/pull/1016)) ## 1.47.1 * Sanitize filenames in SSR mode ([#1005](https://github.com/sveltejs/svelte/issues/1005)) ## 1.47.0 * Support dynamic `import(...)` inside `<script>` tags ([#1003](https://github.com/sveltejs/svelte/issues/1003)) ## 1.46.1 * `await...then` shorthand ([#957](https://github.com/sveltejs/svelte/issues/957)) * Allow dynamic components inside elements ([#993](https://github.com/sveltejs/svelte/issues/993)) * Don't use `dataset` on SVG nodes ([#982](https://github.com/sveltejs/svelte/issues/982)) * Fix erroneous `<figcaption>` a11y warning ([#991](https://github.com/sveltejs/svelte/issues/991)) * Handle empty classes when pruning unused selectors ([#978](https://github.com/sveltejs/svelte/issues/978)) * Better trimming of SSR'd output ([#976](https://github.com/sveltejs/svelte/issues/976)) * Don't add `event` to `expectedProperties` ([#972](https://github.com/sveltejs/svelte/issues/972)) * Emit error on bad `set` arguments in dev mode ([#990](https://github.com/sveltejs/svelte/issues/990)) ## 1.46.0 * Pass `filename` through to preprocessors ([#983](https://github.com/sveltejs/svelte/issues/983)) ## 1.45.0 * Dynamic components ([#971](https://github.com/sveltejs/svelte/pull/971)) ## 1.44.2 * Fix `await` blocks with siblings ([#974](https://github.com/sveltejs/svelte/issues/974)) * Fix `await` blocks inside `if` blocks ([#975](https://github.com/sveltejs/svelte/issues/975)) ## 1.44.1 * Fix bidirectional transitions that reference state ([#962](https://github.com/sveltejs/svelte/issues/962)) ## 1.44.0 * Add `svelte.preprocess` ([#181](https://github.com/sveltejs/svelte/issues/181), [#876](https://github.com/sveltejs/svelte/issues/876)) * Add `{{#await ...}}` blocks ([#654](https://github.com/sveltejs/svelte/issues/654)) ## 1.43.1 * Fix parameterised transitions ([#962](https://github.com/sveltejs/svelte/issues/962)) * Prevent boolean attributes breaking estree-walker expectations ([#961](https://github.com/sveltejs/svelte/issues/961)) * Throw error on cyclical store computations ([#964](https://github.com/sveltejs/svelte/pull/964)) ## 1.43.0 * Export `Store` class to manage global state ([#930](https://github.com/sveltejs/svelte/issues/930)) * Recognise `aria-current` ([#953](https://github.com/sveltejs/svelte/pull/953)) * Support SSR register options including `extensions` ([#939](https://github.com/sveltejs/svelte/issues/939)) * Friendlier error for illegal contexts ([#934](https://github.com/sveltejs/svelte/issues/934)) * Remove whitespace around `<:Window>` components ([#943](https://github.com/sveltejs/svelte/issues/943)) ## 1.42.1 * Correctly append items inside a slotted `each` block ([#932](https://github.com/sveltejs/svelte/pull/932)) * Fix `<:Window bind:online/>` ([#936](https://github.com/sveltejs/svelte/issues/936)) * Attach globals to state upon initialisation ([#908](https://github.com/sveltejs/svelte/issues/908)) ## 1.42.0 * Implement `indeterminate` binding for checkbox inputs ([#910](https://github.com/sveltejs/svelte/issues/910)) * Use `<option>` children as `value` attribute if none exists ([#928](https://github.com/sveltejs/svelte/issues/928)) * Allow quoted property names in default export and sub-properties ([#914](https://github.com/sveltejs/svelte/issues/914)) * Various improvements to generated code for bindings ## 1.41.4 * Handle self-destructive bindings ([#917](https://github.com/sveltejs/svelte/issues/917)) * Prevent `innerHTML` with `<option>` elements ([#915](https://github.com/sveltejs/svelte/issues/915)) * Use `dataset` unless `legacy` is true ([#858](https://github.com/sveltejs/svelte/issues/858)) * Add `prepare` script to facilitate installing from git ([#923](https://github.com/sveltejs/svelte/pull/923)) ## 1.41.3 * Prevent argument name clashes ([#911](https://github.com/sveltejs/svelte/issues/911)) * Fix UMD factory arguments ([#918](https://github.com/sveltejs/svelte/pull/918)) * Don't attempt to set computed values ([#893](https://github.com/sveltejs/svelte/issues/893)) * Fix TypeScript build error ([#919](https://github.com/sveltejs/svelte/issues/919)) ## 1.41.2 * Handle attribute selectors with no value ([#905](https://github.com/sveltejs/svelte/issues/905)) * Retain `async` keyword when extracting functions ([#904](https://github.com/sveltejs/svelte/issues/904)) * Shallow clone `data` on initialisation ([#891](https://github.com/sveltejs/svelte/pull/891)) ## 1.41.1 * Fix updates of destructured each blocks ([#897](https://github.com/sveltejs/svelte/pull/897)) * Don't warn on `options.*` event handler callee ([#900](https://github.com/sveltejs/svelte/pull/900)) ## 1.41.0 * `onwarn` and `onerror` receive default handlers as second arguments ([#883](https://github.com/sveltejs/svelte/pull/883)) * Recognise `muted` as boolean property on `<audio>` elements ([#886](https://github.com/sveltejs/svelte/pull/886)) * Array destructuring for `each` block contexts ([#889](https://github.com/sveltejs/svelte/pull/889)) ## 1.40.2 * Ignore `@apply` and similar in CSS ([#871](https://github.com/sveltejs/svelte/issues/871)) * Properly escape CSS in custom elements ([#872](https://github.com/sveltejs/svelte/issues/872)) ## 1.40.1 * Always use explicit closing tags with `innerHTML` ([#866](https://github.com/sveltejs/svelte/issues/866)) * Escape text in `textContent` and `innerHTML` expressions ([#868](https://github.com/sveltejs/svelte/issues/868)) ## 1.40.0 * Short fragment method names ([#863](https://github.com/sveltejs/svelte/pull/863)) * Extract declarations out of default export ([#756](https://github.com/sveltejs/svelte/issues/756)) ## 1.39.4 * Extract shared init logic ([#855](https://github.com/sveltejs/svelte/pull/855)) * Allow `console.*` calls in event handlers ([#782](https://github.com/sveltejs/svelte/issues/782)) * Marker comments in output ([#823](https://github.com/sveltejs/svelte/issues/823)) * Use `textContent` and `innerHTML` where appropriate ([#23](https://github.com/sveltejs/svelte/issues/23)) * Various improvements to generated code ## 1.39.3 * Allow `slot='...'` inside custom elements ([#827](https://github.com/sveltejs/svelte/issues/827)) * Disallow `slot='...'` inside if/each blocks ([#849](https://github.com/sveltejs/svelte/issues/849)) * Use correct parent node for slotted if blocks ([#850](https://github.com/sveltejs/svelte/issues/850)) ## 1.39.2 * Escape CSS in shadow DOM ([#840](https://github.com/sveltejs/svelte/issues/840)) * Fix missing anchor bug inside SVG elements ([#843](https://github.com/sveltejs/svelte/issues/843)) ## 1.39.1 * Always use anchors for slotted content ([#822](https://github.com/sveltejs/svelte/issues/822)) * Prevent ES6 in helpers ([#838](https://github.com/sveltejs/svelte/issues/838)) * Correctly determine whether to use `timeRangesToArray` ([#837](https://github.com/sveltejs/svelte/pull/837)) ## 1.39.0 * Always attach fragment to shadow root ([#821](https://github.com/sveltejs/svelte/issues/821)) * Add `buffered`, `seekable`, `played` bindings to media elements ([#819](https://github.com/sveltejs/svelte/pull/819)) * Quote `class` properties in legacy mode ([#830](https://github.com/sveltejs/svelte/issues/830)) * Warn on missing `lang` attribute on `<html>` ([#828](https://github.com/sveltejs/svelte/pull/828)) ## 1.38.0 * Compile-time a11y warnings ([#815](https://github.com/sveltejs/svelte/pull/815)) * Remove redundant input blowback guards ([#645](https://github.com/sveltejs/svelte/issues/645)) * Use component name in debugging messages ([#781](https://github.com/sveltejs/svelte/issues/781)) ## 1.37.0 * Experimental support for compiling to custom elements ([#797](https://github.com/sveltejs/svelte/issues/797)) ## 1.36.0 * Optimize `style` attributes where possible ([#455](https://github.com/sveltejs/svelte/issues/455)) ## 1.35.0 * `set` and `get` continue to work until `destroy` is complete ([#788](https://github.com/sveltejs/svelte/issues/788)) * Observers of unchanged bound values don't fire incorrectly ([#804](https://github.com/sveltejs/svelte/issues/804)) * Nested components with slotted content render correctly in SSR mode ([#801](https://github.com/sveltejs/svelte/issues/801)) * More efficient rendering of raw and slotted content ([#637](https://github.com/sveltejs/svelte/issues/637)) * Handle unquoted attributes in attribute selectors ([#798](https://github.com/sveltejs/svelte/issues/798)) ## 1.34.0 * Support nested `<slot>` elements ([#790](https://github.com/sveltejs/svelte/issues/790)) * Attach `options` to instance ([#550](https://github.com/sveltejs/svelte/issues/550), [#777](https://github.com/sveltejs/svelte/issues/777)) * Error if transitions are applied to component ([#791](https://github.com/sveltejs/svelte/issues/791)) * Handle CSS variables in `<style>` tag ([#757](https://github.com/sveltejs/svelte/issues/757)) ## 1.33.0 * Replace `{{yield}}` with `<slot>` — adds fallback content named slots, and `options.slots` ([#763](https://github.com/sveltejs/svelte/issues/763)) ## 1.32.0 * Allow `anchor` initialisation option, alongside `target` ([#784](https://github.com/sveltejs/svelte/issues/784)) * Remove leading CSS selectors safely ([#783](https://github.com/sveltejs/svelte/issues/783)) ## 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 `<select>` binding in loop ([#685](https://github.com/sveltejs/svelte/issues/685)) * Prevent bindings from calling `oncreate` functions prematurely ([#694](https://github.com/sveltejs/svelte/pull/694)) * Simpler codegen ([#673](https://github.com/sveltejs/svelte/pull/673)) ## 1.23.4 * Don't recreate if blocks incorrectly ([#669](https://github.com/sveltejs/svelte/pull/669)) ## 1.23.3 * Pass parameters to `get_block` ([#667](https://github.com/sveltejs/svelte/issues/667)) ## 1.23.2 * Fix if blocks being recreated on update ([#665](https://github.com/sveltejs/svelte/issues/665)) ## 1.23.1 * Fix each-else blocks that are empty on initial render ([#662](https://github.com/sveltejs/svelte/issues/662)) ## 1.23.0 * Hydration ([#649](https://github.com/sveltejs/svelte/pull/649)) * Correctly transform CSS selectors with pseudo-elements ([#658](https://github.com/sveltejs/svelte/issues/658)) ## 1.22.5 * Fix nested component unmounting bug ([#643](https://github.com/sveltejs/svelte/issues/643)) ## 1.22.4 * Include `ast` in `svelte.compile` return value ([#632](https://github.com/sveltejs/svelte/issues/632)) * Set initial value of `<select>` binding, if unspecified ([#639](https://github.com/sveltejs/svelte/issues/639)) * Mark indirect dependencies of `<select>` bindings (i.e. the dependencies of their `<option>` values) ([#639](https://github.com/sveltejs/svelte/issues/639)) ## 1.22.3 * Fix nested component unmounting bug ([#625](https://github.com/sveltejs/svelte/issues/625)) * Allow components to have computed member expression bindings ([#624](https://github.com/sveltejs/svelte/issues/624)) * Handle empty `<style>` tags ([#634](https://github.com/sveltejs/svelte/issues/634)) * Warn on missing component ([#623](https://github.com/sveltejs/svelte/issues/623)) * Allow dynamic `type` attribute for unbound inputs ([#620](https://github.com/sveltejs/svelte/issues/620)) * Rename `addEventListener` and `removeEventListener` directives ([#621](https://github.com/sveltejs/svelte/issues/621)) ## 1.22.2 * Escape template strings correctly in SSR output ([#616](https://github.com/sveltejs/svelte/issues/616)) * Prevent magic-string deprecation warning ([#617](https://github.com/sveltejs/svelte/pull/617)) ## 1.22.1 * Sanitise event handler names ([#612](https://github.com/sveltejs/svelte/issues/612)) ## 1.22.0 * Symmetry between `mount` and `unmount`. This is potentially a breaking change if your components import other components that were precompiled with an earlier version of Svelte ([#592](https://github.com/sveltejs/svelte/issues/592)) * Add `cascade` option, which prevents styles affecting child components if `false`, unless selectors are wrapped in `:global(...)` and keyframe declaration IDs are prefixed with `-global-`. This will become the default behaviour in v2 ([#583](https://github.com/sveltejs/svelte/issues/583)) * Support binding to computed member expressions ([#602](https://github.com/sveltejs/svelte/issues/602)) * Coerce empty string in `number`/`range` inputs to `undefined`, not `0` ([#584](https://github.com/sveltejs/svelte/issues/584)) * Fix insert location of DOM elements in each/if/nested component edge cases ([#610](https://github.com/sveltejs/svelte/issues/610)) ## 1.21.0 * Always use `helpers` if referenced, not just for call expressions ([#575](https://github.com/sveltejs/svelte/issues/575)) * Fix parsing of `<textarea>` children ([#599](https://github.com/sveltejs/svelte/pull/599)) * Treat `<textarea>` value attributes and children as equivalent, and fail validation if both are present ([#599](https://github.com/sveltejs/svelte/pull/599)) * Fix `<textarea>` SSR ([#599](https://github.com/sveltejs/svelte/pull/599)) * Apply CSS transition styles immediately if transition has delay ([#574](https://github.com/sveltejs/svelte/issues/574)) * Ensure `transitionManager` is treeshakeable ([#593](https://github.com/sveltejs/svelte/issues/593)) * Fix for environments where `node.style.animation` is undefined ([#587](https://github.com/sveltejs/svelte/issues/587)) * Fix order of operations when dealing with `<select>` elements ([#590](https://github.com/sveltejs/svelte/issues/590)) * Downgrade 'invalid callee' to a warning ([#579](https://github.com/sveltejs/svelte/issues/579)) * Convert to TypeScript ([#573](https://github.com/sveltejs/svelte/pull/573)) ## 1.20.2 * Fix destruction of compound if-blocks with outros ([#572](https://github.com/sveltejs/svelte/pull/572)) ## 1.20.1 * Fix insertion order of `if` blocks and their anchors ([#569](https://github.com/sveltejs/svelte/issues/569)) ## 1.20.0 * Faster, better updates of keyed each blocks ([#373](https://github.com/sveltejs/svelte/issues/373), [#543](https://github.com/sveltejs/svelte/issues/543)) * Use element IDs to robustly track dynamically injected `<style>` tags ([#554](https://github.com/sveltejs/svelte/issues/554)) * Abort outros before corresponding intros ([#546](https://github.com/sveltejs/svelte/issues/546)) * Generate less code for `if` blocks with `else` blocks ([#540](https://github.com/sveltejs/svelte/issues/540)) * Ensure `{{yield}}` block content is injected into the right place ([#561](https://github.com/sveltejs/svelte/issues/561)) * Simpler, more readable codegen code ([#559](https://github.com/sveltejs/svelte/pull/559)) * Validate transition directives ([#564](https://github.com/sveltejs/svelte/issues/564)) * Apply delays to bidirectional transitions ([#562](https://github.com/sveltejs/svelte/issues/562)) * Handle all valid HTML entities ([#565](https://github.com/sveltejs/svelte/pull/565)) * Fix outros on compound `if` blocks ([#565](https://github.com/sveltejs/svelte/pull/565)) * Validation for `<:Window>` tags ([#565](https://github.com/sveltejs/svelte/pull/565)) * Increased test coverage ([#565](https://github.com/sveltejs/svelte/pull/565)) ## 1.19.1 * Export `generateKeyframes`, so that CSS transitions work ## 1.19.0 * Experimental support for transitions ([#7](https://github.com/sveltejs/svelte/issues/7)) * Use `querySelector(':checked')` instead of `selectedOptions` ([#539](https://github.com/sveltejs/svelte/issues/539)) * Stringify helpers before bundling them, to avoid renaming errors ([#538](https://github.com/sveltejs/svelte/issues/538)) ## 1.18.2 * Parenthesize if-block conditions ([#532](https://github.com/sveltejs/svelte/issues/532)) * Fix parsing of parenthesized expressions ([#534](https://github.com/sveltejs/svelte/issues/534)) * Fix error on `bind:checked` that doesn't belong to a checkbox input ([#529](https://github.com/sveltejs/svelte/pull/529)) ## 1.18.1 * Allow `destroy()` in event handlers ([#523](https://github.com/sveltejs/svelte/issues/523)) * Fix bug with `{{yield}}` blocks following elements ([#524](https://github.com/sveltejs/svelte/issues/524)) ## 1.18.0 * Visit `<select>` attributes after children, to ensure options are in the right state ([#521](https://github.com/sveltejs/svelte/pull/521)) * Use sibling elements as anchors rather than creating comment nodes wherever possible ([#3](https://github.com/sveltejs/svelte/issues/3)) ## 1.17.2 * Replace bad characters when creating variable names based on element names ([#516](https://github.com/sveltejs/svelte/issues/516)) ## 1.17.1 * Fixes for static each-else and yield blocks ([#509](https://github.com/sveltejs/svelte/issues/509)), ([#514](https://github.com/sveltejs/svelte/issues/514)) * Code generation tweaks ([#504](https://github.com/sveltejs/svelte/issues/504)), ([#507](https://github.com/sveltejs/svelte/issues/507)) ## 1.17.0 * Add `currentTime`, `duration` and `paused` bindings for media elements ([#406](https://github.com/sveltejs/svelte/issues/406)) * Don't treat helpers as dependencies ([#492](https://github.com/sveltejs/svelte/issues/492)) * Allow `<:Window>` event handlers to access component state ([#497](https://github.com/sveltejs/svelte/pull/497)) * Allow two-way binding to properties named 'component' ([#495](https://github.com/sveltejs/svelte/issues/495)) * Group checkbox bindings correctly, to avoid erroneously unchecking siblings ([#498](https://github.com/sveltejs/svelte/issues/498)) * Validate two-way bindings ([#494](https://github.com/sveltejs/svelte/pull/494)) * Allow dynamic each-block to have static else-block ([#501](https://github.com/sveltejs/svelte/pull/501)) * Initialise `<select>` value correctly ([#502](https://github.com/sveltejs/svelte/pull/502)) ## 1.16.0 * Better code generation ([#489](https://github.com/sveltejs/svelte/pull/489)), ([#490](https://github.com/sveltejs/svelte/pull/490)), ([#491](https://github.com/sveltejs/svelte/pull/491)) * Prevent binding blowback on initial render ([#488](https://github.com/sveltejs/svelte/pull/488)) ## 1.15.1 * Clone data before merging it with state ([#479](https://github.com/sveltejs/svelte/issues/479)) * Apply binding event handlers before user event handlers ([#486](https://github.com/sveltejs/svelte/issues/486)) ## 1.15.0 * Dev mode — downgrade 'missing data' to a warning, and ignore whitelisted globals ([#475](https://github.com/sveltejs/svelte/issues/475)) * Fix `<select>` value binding when options are updated late ([#476](https://github.com/sveltejs/svelte/issues/476)) * Throw at compile time if event handler references invalid callee ([#473](https://github.com/sveltejs/svelte/pull/473)) * Check for helper function purity ([#473](https://github.com/sveltejs/svelte/pull/473)) * Validate `namespace` option ([#473](https://github.com/sveltejs/svelte/pull/473)) ## 1.14.1 * Replace bad characters when creating variable names based on attributes ([#470](https://github.com/sveltejs/svelte/issues/470)) ## 1.14.0 * Better guard against naming conflicts ([#465](https://github.com/sveltejs/svelte/issues/465)) * Better error if getters and setters are used with `methods` ([#425](https://github.com/sveltejs/svelte/issues/425)) * Don't create whitespace nodes inside elements that can't use them ([#189](https://github.com/sveltejs/svelte/issues/189)) * Collapse consecutive `if` statements with the same condition ([#450](https://github.com/sveltejs/svelte/issues/450)) * Window `scroll` bindings are bidirectional ([#404](https://github.com/sveltejs/svelte/issues/404)) * Add `bind:online` to window ([#404](https://github.com/sveltejs/svelte/issues/404)) * In dev mode, throw if read-only properties are set ([#404](https://github.com/sveltejs/svelte/issues/404)) * Prevent conflicts with component name ([#464](https://github.com/sveltejs/svelte/pull/464)) * Ensure event handler names are deconflicted ([#466](https://github.com/sveltejs/svelte/issues/466)) ## 1.13.7 * Fix observers — `defer: true` now triggers callback after DOM is updated ([#441](https://github.com/sveltejs/svelte/issues/441)) * Handle empty `computed` property ([#452](https://github.com/sveltejs/svelte/issues/452)) * Correctly bind one-way `<select>` value attributes with objects ([#423](https://github.com/sveltejs/svelte/issues/423)) * Hoist event handlers inside each blocks, where possible ([#456](https://github.com/sveltejs/svelte/pull/456)) * Don't bind event handler callbacks ([#433](https://github.com/sveltejs/svelte/issues/433)) * Internal refactoring and neater code generation ([#453](https://github.com/sveltejs/svelte/pull/453)) ## 1.13.6 * Use `assign` helper instead of `Object.assign` for better performance and legacy compatibility ([#431](https://github.com/sveltejs/svelte/issues/431)) * Improved code generation ([#419](https://github.com/sveltejs/svelte/issues/419)), ([#440](https://github.com/sveltejs/svelte/issues/440)), ([#442](https://github.com/sveltejs/svelte/issues/442)) ## 1.13.5 * Read `range` and `number` input values as numbers ([#436](https://github.com/sveltejs/svelte/issues/436)) * Better error for `bind:value='{{foo}}'` ([#437](https://github.com/sveltejs/svelte/issues/437)) ## 1.13.4 * Prevent unclosed `<script>` tag causing infinite loop ([#435](https://github.com/sveltejs/svelte/pull/435)) ## 1.13.3 * Correctly handle `{{true}}`, `{{false}}` and `{{null}}` ([#424](https://github.com/sveltejs/svelte/issues/424)) * Update `<select>` value attributes correctly ([#423](https://github.com/sveltejs/svelte/issues/423)) * Bind custom event handler callbacks ([#428](https://github.com/sveltejs/svelte/issues/428)) * Disallow `import root` ([#430](https://github.com/sveltejs/svelte/pull/430)) * Prevent component bindings mutating the wrong object ([#432](https://github.com/sveltejs/svelte/pull/432)) ## 1.13.2 * Fix deep component bindings ([#420](https://github.com/sveltejs/svelte/issues/420)) * Include `css` property in compiler output ([#409](https://github.com/sveltejs/svelte/issues/409)) * Treat functions as mutable objects when recomputing ([#413](https://github.com/sveltejs/svelte/issues/413) * Include magic-string in bundle ([#410](https://github.com/sveltejs/svelte/issues/410)) * Disable unneeded Bublé transformations for slimmer output ([#411](https://github.com/sveltejs/svelte/pull/411)) ## 1.13.1 * Prevent infinite loops with pathological component bindings ([#398](https://github.com/sveltejs/svelte/issues/398)) * More robust deconflicting ([#401](https://github.com/sveltejs/svelte/pull/401)) ## 1.13.0 * Add `<:Window>` meta tag with event listeners, and a handful of bindings ([#371](https://github.com/sveltejs/svelte/issues/371)) * Don't uncheck radios incorrectly ([#399](https://github.com/sveltejs/svelte/issues/399)) ## 1.12.1 * Deconflict non-helper functions (`addCss` etc) ([#388](https://github.com/sveltejs/svelte/issues/388)) * Allow reserved words in tags, e.g. `{{class}}` ([#383](https://github.com/sveltejs/svelte/issues/383)) ## 1.12.0 * Shorthand attributes — `<Widget :foo/>` is equivalent to `<Widget foo='{{foo}}'/>` ([#384](https://github.com/sveltejs/svelte/pull/384)) * Support `bind:group` for radio and checkbox inputs ([#311](https://github.com/sveltejs/svelte/issues/311), [#312](https://github.com/sveltejs/svelte/issues/312)) * Better sourcemap support for two-way bindings ## 1.11.4 * Dev mode warning for bad `component.observe` arguments ([#369](https://github.com/sveltejs/svelte/issues/369)) * Translate `component.on('teardown', ...)` to `component.on('destroy', ...)` and add dev warning ([#365](https://github.com/sveltejs/svelte/issues/365)) * Use shared prototype to save bytes ([#378](https://github.com/sveltejs/svelte/pull/378)) ## 1.11.3 * Undo CSS behaviour change in 1.11.2 ([#372](https://github.com/sveltejs/svelte/issues/372)) * Pin version of css-tree ([#370](https://github.com/sveltejs/svelte/pull/370)) ## 1.11.2 * Add component CSS to each document a component is rendered to ([#331](https://github.com/sveltejs/svelte/issues/331)) ## 1.11.1 * Fix two-way binding for components inside `each` blocks ([#356](https://github.com/sveltejs/svelte/issues/356)) ## 1.11.0 * Add `format: 'eval'` and `svelte.create`, to create components directly from source code ([#345](https://github.com/sveltejs/svelte/issues/345)) * Node 4 compatibility ([#109](https://github.com/sveltejs/svelte/issues/109)) ## 1.10.3 * Prevent `'</script>'` 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 `<script>` and `<style>` tags to pass through without processing ([#335](https://github.com/sveltejs/svelte/issues/335)) ## 1.10.1 * typecheck argument in _set when in dev mode ([#342](https://github.com/sveltejs/svelte/issues/342)) * Prevent duplicate helpers in non-shared mode ([#337](https://github.com/sveltejs/svelte/issues/337)) ## 1.10.0 * Component self-references with `<:Self/>` ([#51](https://github.com/sveltejs/svelte/issues/51)) * Two-way binding with `<select multiple>` ([#313](https://github.com/sveltejs/svelte/issues/313)) ## 1.9.1 * Better error for malformed event handlers ([#220](https://github.com/sveltejs/svelte/issues/220)) * Allow function expressions in tags ([#269](https://github.com/sveltejs/svelte/issues/269)) ## 1.9.0 * Add development warnings ([#13](https://github.com/sveltejs/svelte/issues/13)), ([#320](https://github.com/sveltejs/svelte/pull/320)), ([#177](https://github.com/sveltejs/svelte/issues/177)), ([#249](https://github.com/sveltejs/svelte/issues/249)) * Better error if parser encounters an unmatched closing tag ([#321](https://github.com/sveltejs/svelte/issues/321)) ## 1.8.1 * Allow implicitly closed elements ([#318](https://github.com/sveltejs/svelte/pull/318)) * More informative error messages for unclosed elements/blocks ([#258](https://github.com/sveltejs/svelte/issues/258)) * Deprecate `onrender` and `onteardown` in favour of `oncreate` and `ondestroy` ([#40](https://github.com/sveltejs/svelte/issues/40)) ## 1.8.0 * Prevent duplicate imports ([#308](https://github.com/sveltejs/svelte/issues/308)) * Use `input` events (not `change`) for all input elements other than `checkbox` and `radio`, and textareas ([#309](https://github.com/sveltejs/svelte/pull/309)) * Encapsulate keyframe declarations ([#245](https://github.com/sveltejs/svelte/issues/245)) ## 1.7.1 * Deconflict imports and shared helpers ([#222](https://github.com/sveltejs/svelte/issues/222)) * Deconflict each-block contexts and reserved words ([#222](https://github.com/sveltejs/svelte/issues/222)) * Allow shorthand properties in expressions ([#296](https://github.com/sveltejs/svelte/issues/296)) ## 1.7.0 * Include CSS AST in `svelte.parse` output ([#302](https://github.com/sveltejs/svelte/pull/302)) * Better handling of CSS parse errors ([#302](https://github.com/sveltejs/svelte/pull/302)) * Initialise `<select>` elements with two-way binding correctly ([#301](https://github.com/sveltejs/svelte/issues/301)) * Allow local context in component event handlers inside `each` blocks ([#290](https://github.com/sveltejs/svelte/issues/290)) * Fix two-way binding for components inside `each` blocks ([#290](https://github.com/sveltejs/svelte/issues/290)) ## 1.6.11 * Initialise dynamic `<option>` value correctly ([#291](https://github.com/sveltejs/svelte/issues/291)) ## 1.6.10 * Ensure `sources` and `sourcesContent` are populated in sourcemaps, even if none of the original code is used ([#295](https://github.com/sveltejs/svelte/pull/295)) * Add `outputFilename` option to populate `file` and `sources` sourcemap properties correctly ([#295](https://github.com/sveltejs/svelte/pull/295)) ## 1.6.9 * Don't trigger bindings for torn-down components ([#277](https://github.com/sveltejs/svelte/issues/277)) * SSR: Handle two-way bindings ([#275](https://github.com/sveltejs/svelte/issues/275)) * Improve performance by checking data has changed before updates ([#279](https://github.com/sveltejs/svelte/pull/279)) * Parse CSS with css-tree to prevent transformation errors with unconventional styles ([#288](https://github.com/sveltejs/svelte/issues/288)) ## 1.6.8 * Always trigger `onrender`, including when change initiator is a nested component ([#263](https://github.com/sveltejs/svelte/issues/263)) * Handle default function parameters in computations ([#274](https://github.com/sveltejs/svelte/issues/274)) ## 1.6.7 * SSR: Fix apostrophes ([#267](https://github.com/sveltejs/svelte/issues/267)) * Add `xmlns` attributes to SVGs ([#262](https://github.com/sveltejs/svelte/pull/262)) ## 1.6.6 * Omit text from comment anchors ([#247](https://github.com/sveltejs/svelte/issues/247)) * Handle `xlink` attributes ([#264](https://github.com/sveltejs/svelte/issues/264)) ## 1.6.5 * Handle `<!doctype>` declarations ([#255](https://github.com/sveltejs/svelte/pull/255)) ## 1.6.4 * Fix updates of yields inside each blocks ([20e1b05](https://github.com/sveltejs/svelte/commit/20e1b05c45dc9fcddfe2e7c5c9fc3109f0d45fa9)) * SSR: Handle attributes with values that begin with a number ([#248](https://github.com/sveltejs/svelte/issues/248)) * Handle multiline comments in CSS ([#252](https://github.com/sveltejs/svelte/issues/252)) ## 1.6.3 * Fix `{{yield}}` bugs for components inside `if` and `each` blocks ([#230](https://github.com/sveltejs/svelte/issues/230), [#231](https://github.com/sveltejs/svelte/issues/231)) * Set attributes on `<svg>` elements correctly ([#233](https://github.com/sveltejs/svelte/issues/233)) * Add `svelte.VERSION` property to compiler ## 1.6.2 * Use helpers for `addEventListener`, `removeEventListener`, `setAttribute` ([#227](https://github.com/sveltejs/svelte/pull/227)) * Escape `sharedPath` ([#229](https://github.com/sveltejs/svelte/pull/229)) * Handle attributes with values that begin with a number ([#234](https://github.com/sveltejs/svelte/issues/234)) * Update dependencies ## 1.6.1 * SSR: Handle component directives at arbitrary positions ([#221](https://github.com/sveltejs/svelte/issues/221)) * Provide useful feedback on invalid void closing tag ([#224](https://github.com/sveltejs/svelte/issues/224)) ## 1.6.0 * Replace `standalone: false` with `shared: true`, or `shared: 'custom/path/to/shared.js'` ([#218](https://github.com/sveltejs/svelte/issues/218)) * Include `shared.js` in package ## 1.5.0 * Implement `standalone: false` ([#9](https://github.com/sveltejs/svelte/issues/9)) * SSR: Handle component directives ([216](https://github.com/sveltejs/svelte/issues/216)) ## 1.4.0 * Keyed `each` blocks ([#81](https://github.com/sveltejs/svelte/issues/81)) ## 1.3.1 * Remove file extensions from AMD dependencies ([#144](https://github.com/sveltejs/svelte/issues/144)) * Throw if `options.name` is illegal ([#102](https://github.com/sveltejs/svelte/issues/102)) ## 1.3.0 * SSR compiler: Support `format` option ([#196](https://github.com/sveltejs/svelte/issues/196)) * SSR compiler: Don't self-close 'normal' elements ([#200](https://github.com/sveltejs/svelte/issues/200)) * Remove leading spaces from scoped CSS ([#140](https://github.com/sveltejs/svelte/issues/140)) * Internal refactoring ## 1.2.5 * Allow whitelisted globals in templates ([#185](https://github.com/sveltejs/svelte/issues/185)) * Intercept parse errors with `options.onerror` ## 1.2.4 * SSR compiler: Implement `{{{triples}}}` ([#197](https://github.com/sveltejs/svelte/issues/197)) * SSR compiler: Escape HTML in tags ([#197](https://github.com/sveltejs/svelte/issues/197)) ## 1.2.3 * Add support for `namespace` declaration for SVG (etc) components ([#147](https://github.com/sveltejs/svelte/issues/147)) * Throw error if methods or lifecycle hooks are arrow functions that use `this` or `arguments` ([#179](https://github.com/sveltejs/svelte/issues/179)) * Use `setAttribute()` for `list` attributes, to preserve link to `<datalist>` ([#178](https://github.com/sveltejs/svelte/issues/178)) * Throw error if default export is not an object literal ([#190](https://github.com/sveltejs/svelte/pull/190)) * Internal refactoring ## 1.2.2 * Omit directives in server-side rendering ([#163](https://github.com/sveltejs/svelte/issues/167)) * Handle comments in SSR ([#165](https://github.com/sveltejs/svelte/issues/165)) * Support calling methods of `event`/`this` in event handlers ([#162](https://github.com/sveltejs/svelte/issues/162)) * Remove `mount` from public API ([#150](https://github.com/sveltejs/svelte/issues/150)) ## 1.2.1 * Server-side rendering is available as a compiler option (`generate: 'ssr'`) ([#159](https://github.com/sveltejs/svelte/pull/159)) * Allow call expressions where function is not in `helpers` ([#163](https://github.com/sveltejs/svelte/issues/163)) ## 1.2.0 * Server-side rendering of HTML ([#148](https://github.com/sveltejs/svelte/pull/148)) and CSS ([#154](https://github.com/sveltejs/svelte/pull/154)) ## 1.1.3 * Handle `xmlns` attributes correctly ([#142](https://github.com/sveltejs/svelte/issues/142)) * Error on duplicate `<style>`/`<script>` tags rather than failing silently ([#142](https://github.com/sveltejs/svelte/issues/142)) * Don't create whitespace text nodes inside SVG elements ([#142](https://github.com/sveltejs/svelte/issues/142)) * Require void elements to be lowercase, to eliminate confusion with components ([#137](https://github.com/sveltejs/svelte/issues/137)) ## 1.1.2 * Deconflict variable names ([#88](https://github.com/sveltejs/svelte/issues/88), [#126](https://github.com/sveltejs/svelte/issues/126)) ## 1.1.1 * Support multiple SVG elements in a component ([#130](https://github.com/sveltejs/svelte/issues/130)) ## 1.1.0 * Separate fragment creation from `mount` ([#91](https://github.com/sveltejs/svelte/pull/91)) * Trigger `onrender` hook at correct time for nested components ([#103](https://github.com/sveltejs/svelte/pull/103)) * Fix keypath dynamic attributes in components ([#46](https://github.com/sveltejs/svelte/issues/46)) * Implement `{{yield}}` ([#112](https://github.com/sveltejs/svelte/pull/112)) * Optimise teardown ([#99](https://github.com/sveltejs/svelte/issues/99)) * Require computed properties to have at least one dependency ([#115](https://github.com/sveltejs/svelte/pull/115)) * Support `{{#each ...}}...{{else}}...{{/each}}` ([#90](https://github.com/sveltejs/svelte/issues/90)) * Triple mustaches ([#35](https://github.com/sveltejs/svelte/issues/35)) ## 1.0.7 * Correctly escape HTML entities ([#85](https://github.com/sveltejs/svelte/issues/85)) ## 1.0.6 * Generate useful sourcemaps ([#60](https://github.com/sveltejs/svelte/issues/60)) ## 1.0.5 * Ensure compiler only generates ES5 code ([#75](https://github.com/sveltejs/svelte/issues/75)) * `get()` without arguments returns entire state object ([#73](https://github.com/sveltejs/svelte/issues/73)) ## 1.0.4 * Handle empty attributes in elements and components ([#63](https://github.com/sveltejs/svelte/issues/63)) * Detach top-level text nodes inside departing each blocks ([#62](https://github.com/sveltejs/svelte/issues/62)) ## 1.0.3 * Better generated code for `if` blocks, especially with `else`/`elseif` chains ([#28](https://github.com/sveltejs/svelte/pull/28)) * Trim unnecessary whitespace from `else`/`elseif` blocks ([#49](https://github.com/sveltejs/svelte/pull/49)) * Handle trailing comments in script tags ([#64](https://github.com/sveltejs/svelte/issues/64)) ## 1.0.2 Set `style.cssText` rather than `style` ([#44](https://github.com/sveltejs/svelte/issues/44)) ## 1.0.1 * Preserve SVG namespace inside each blocks * Always use `setAttribute` with SVG elements ## 1.0.0 * Generate AMD, CJS, IIFE and UMD builds * Correctly insert text nodes before anchors ([#31](https://github.com/sveltejs/svelte/pull/31)) ## 0.3.0 * Fix bug where departing element would unset `ref` incorrectly ([#24](https://github.com/sveltejs/svelte/issues/24)) * Basic template validation ([#6](https://github.com/sveltejs/svelte/issues/6)) * Fire `onrender` hooks once component is in DOM ([#18](https://github.com/sveltejs/svelte/issues/18)) * Only detach nodes when necessary to do so ([#26](https://github.com/sveltejs/svelte/issues/26)) ## 0.2.2 * On second thoughts, don't transpile build. Was only really for Uglify's benefit, which is daft ## 0.2.1 * Transpile build ## 0.2.0 * Only generate UMD build, for now * Include dependencies in the build, treat as `devDependencies` * Faster initial render * Parent data overrides child defaults * Remove top-level text nodes on teardown * Handle `readUntil` errors in parser * Basic `<select>` binding * Handle missing data * Prevent infinite set/observe loops * Add `bind:foo` shorthand * `else` and `elseif` blocks * Hoist imports ## 0.1.1 * Support unquoted attributes * Handle entities in attributes * Inline nested components * `fire` and `on` methods ## 0.1.0 * Breaking change – Svelte compiler now generates constructor functions rather than factories ([#2](https://github.com/sveltejs/svelte/issues/2)) * SVG support ## 0.0.2 * First release capable of building TodoMVC ## 0.0.1 * Just squatting on the package name