UNPKG

82.7 kBMarkdownView Raw
1# Svelte changelog
2
3## 3.6.6
4
5* Prevent dynamic components being detached twice ([#3113](https://github.com/sveltejs/svelte/issues/3113), [#2086](https://github.com/sveltejs/svelte/issues/2086))
6
7## 3.6.5
8
9* Handle RxJS-style observables with `get` ([#3153](https://github.com/sveltejs/svelte/issues/3153))
10* Pass `let` values to bindings ([#3140](https://github.com/sveltejs/svelte/issues/3140))
11* Escape `@` symbols in props ([#3173](https://github.com/sveltejs/svelte/issues/3173))
12* Scale crossfaded elements ([#3175](https://github.com/sveltejs/svelte/pull/3175))
13
14## 3.6.4
15
16* Run `onMount` functions in correct order, and before initial `afterUpdate` functions ([#2281](https://github.com/sveltejs/svelte/issues/2281))
17* Fix code transformation for shorthand methods ([#2906](https://github.com/sveltejs/svelte/issues/2906))
18* Fix assignments in inline functions ([#3038](https://github.com/sveltejs/svelte/issues/3038))
19
20## 3.6.3
21
22* Fix await block mounting inside removed if block ([#1496](https://github.com/sveltejs/svelte/issues/1496))
23* Update when element references are removed ([#2034](https://github.com/sveltejs/svelte/issues/2034))
24* Don't attempt to serialize non-string values in server-rendered bindings ([#2135](https://github.com/sveltejs/svelte/issues/2135))
25* Recognise dependencies in function expressions ([#2693](https://github.com/sveltejs/svelte/issues/2693))
26* Scope pseudo-class selectors without class/type ([#1705](https://github.com/sveltejs/svelte/issues/1705))
27* Allow nested at-rules ([#3135](https://github.com/sveltejs/svelte/issues/3135))
28* Allow attributes to contain `=` characters ([#3149](https://github.com/sveltejs/svelte/pull/3149))
29
30## 3.6.2
31
32* Fix placement of each-else block ([#2917](https://github.com/sveltejs/svelte/issues/2917))
33* Make context accessible to `bind:this` ([#2806](https://github.com/sveltejs/svelte/issues/2806))
34* Pass hoisted values to slots ([#2586](https://github.com/sveltejs/svelte/issues/2586))
35
36## 3.6.1
37
38* Fix escaping of `@` in dev mode debug filename ([#3114](https://github.com/sveltejs/svelte/pull/3114))
39
40## 3.6.0
41
42* Add `innerHTML` and `textContent` bindings for `contenteditable` elements ([#2996](https://github.com/sveltejs/svelte/pull/2996))
43* Fix destructuring assignments where targets are member expressions ([#3092](https://github.com/sveltejs/svelte/issues/3092))
44* Deconflict with used globals ([#2963](https://github.com/sveltejs/svelte/pull/2963))
45* Always run `onDestroy` functions, not just for detaching components ([#3058](https://github.com/sveltejs/svelte/issues/3058))
46* Fix scope analysis around catch clauses ([#3064](https://github.com/sveltejs/svelte/issues/3064))
47* Add error constructors to known globals ([#3064](https://github.com/sveltejs/svelte/issues/3064))
48* Always bail out of hoisting on encountering local state in function definition ([#3044](https://github.com/sveltejs/svelte/issues/3044))
49* Fix incorrect merging of top-level text nodes ([#3027](https://github.com/sveltejs/svelte/issues/3027))
50* Handle removal of components in each blocks without props ([#3035](https://github.com/sveltejs/svelte/issues/3035))
51* Only call subscriber once when resubscribing to a store ([#3022](https://github.com/sveltejs/svelte/issues/3022))
52* Check for existence of dynamic component before introing ([#3054](https://github.com/sveltejs/svelte/issues/3054))
53* Sanitize names of bubbled event handlers ([#2923](https://github.com/sveltejs/svelte/issues/2923))
54
55
56## 3.5.4
57
58* Preserve whitespace at the boundaries of `{#each}` blocks ([#713](https://github.com/sveltejs/svelte/issues/713))
59* Fix dynamic `bind:this` on components ([#2333](https://github.com/sveltejs/svelte/issues/2333))
60* Fix binding to values in a component when it uses `$$props` ([#2725](https://github.com/sveltejs/svelte/issues/2725))
61* Fix parsing ambiguous HTML entities ([#3071](https://github.com/sveltejs/svelte/pull/3071))
62
63## 3.5.3
64
65* Don't double-destroy keyed each blocks with outros ([#3055](https://github.com/sveltejs/svelte/issues/3055))
66
67## 3.5.2
68
69* Prevent duplicated outros causing errors ([#3001](https://github.com/sveltejs/svelte/issues/3001))
70* Fix automatic name generation ([#2843](https://github.com/sveltejs/svelte/issues/2843))
71* Fix .d.ts stubs ([#3009](https://github.com/sveltejs/svelte/pull/3009))
72* Don't strip non-breaking spaces ([#3014](https://github.com/sveltejs/svelte/issues/3014))
73* Fix `requestAnimationFrame` context ([#2933](https://github.com/sveltejs/svelte/issues/2933))
74* Allow space before attribute value ([#3026](https://github.com/sveltejs/svelte/issues/3026))
75* Remove null/undefined attributes ([#1434](https://github.com/sveltejs/svelte/issues/1434))
76* Fix whitespace in static markup ([#3030](https://github.com/sveltejs/svelte/pull/3030))
77
78## 3.5.1
79
80* Accommodate webpack idiosyncracies
81
82## 3.5.0
83
84* Update package folder structure ([#2887](https://github.com/sveltejs/svelte/pull/2887))
85* Support `once` modifier on component events ([#2654](https://github.com/sveltejs/svelte/issues/2654))
86* Allow empty `<title>` tags ([#2980](https://github.com/sveltejs/svelte/issues/2980))
87* Render textarea binding values inside element ([#2975](https://github.com/sveltejs/svelte/pull/2975))
88* Fix delayed animation glitch ([#2871](https://github.com/sveltejs/svelte/issues/2871))
89* Solve diamond dependencies problem with stores ([#2660](https://github.com/sveltejs/svelte/issues/2660))
90* Fix missing outros inside each blocks ([#2689](https://github.com/sveltejs/svelte/issues/2689))
91* Support animations without transitions ([#2908](https://github.com/sveltejs/svelte/issues/2908))
92* Add missing transition events ([#2912](https://github.com/sveltejs/svelte/pull/2912))
93
94
95## 3.4.4
96
97* Publish type declaration files ([#2874](https://github.com/sveltejs/svelte/issues/2874))
98* Don't trigger updates for unreferenced values ([#2865](https://github.com/sveltejs/svelte/pull/2865))
99* Omit readonly bindings from SSR output ([#2339](https://github.com/sveltejs/svelte/issues/2339))
100* Prevent outdated animation CSS ([#2871](https://github.com/sveltejs/svelte/issues/2871))
101* Repair dynamic `{@html ...}` in head ([#2880](https://github.com/sveltejs/svelte/pull/2880))
102* Don't create unknown prop warnings for internal props, or if component has `$$props` ([#2881](https://github.com/sveltejs/svelte/pull/2881))
103
104
105## 3.4.3
106
107* Add type declaration files for everything ([#2842](https://github.com/sveltejs/svelte/pull/2842))
108* Prevent `svelte/store` being bundled ([#2786](https://github.com/sveltejs/svelte/issues/2786))
109* Warn on unknown props in dev mode ([#2840](https://github.com/sveltejs/svelte/pull/2840))
110* Treat `requestAnimationFrame` as a no-op on the server ([#2856](https://github.com/sveltejs/svelte/pull/2856))
111* Add `raw` property to AST's `Text` nodes ([#2714](https://github.com/sveltejs/svelte/issues/2714))
112* Add `<details bind:open>` ([#2854](https://github.com/sveltejs/svelte/issues/2854))
113
114## 3.4.2
115
116* Use empty string for empty data attributes ([#2804](https://github.com/sveltejs/svelte/pull/2804))
117* Support `customElement: true` with no `<svelte:options>` ([#2821](https://github.com/sveltejs/svelte/issues/2821))
118* Add docstrings to `svelte/store` ([#2795](https://github.com/sveltejs/svelte/pull/2795))
119
120## 3.4.1
121
122* Handle non-falsy non-function return values from derivers ([#2780](https://github.com/sveltejs/svelte/issues/2780))
123* Allow `spring` to work server-side ([#2773](https://github.com/sveltejs/svelte/issues/2773))
124
125## 3.4.0
126
127* Allow custom element to be defined without a `tag` ([#2417](https://github.com/sveltejs/svelte/issues/2417))
128* Fix parsing of quote marks inside attribute values ([#2715](https://github.com/sveltejs/svelte/pull/2754))
129* Convert `svelte/store` to TypeScript ([#2733](https://github.com/sveltejs/svelte/pull/2733))
130* Allow `debug` tags to include hoisted values ([#2764](https://github.com/sveltejs/svelte/issues/2764))
131* Parse error if attribute name is missing `=` ([#1513](https://github.com/sveltejs/svelte/pull/2770))
132* Allow reactive declarations to depend on mutated `const` values ([#2728](https://github.com/sveltejs/svelte/issues/2728))
133
134## 3.3.0
135
136* Allow multiple event listeners on a single node ([#2688](https://github.com/sveltejs/svelte/issues/2688))
137* Allow derivers to return a cleanup function ([#2553](https://github.com/sveltejs/svelte/issues/2553))
138* Support namespaced components (`<Foo.Bar/>`) ([#2743](https://github.com/sveltejs/svelte/pull/2743))
139
140## 3.2.2
141
142* Add `window` and `document` to expected globals ([#2722](https://github.com/sveltejs/svelte/pull/2722))
143* Prevent hoisting of functions that depend on reactive state ([#2703](https://github.com/sveltejs/svelte/pull/2703))
144* Generate correct code when slot has no changes ([#2697](https://github.com/sveltejs/svelte/issues/2697))
145* Prevent `Object.prototype`-related bugs ([#2696](https://github.com/sveltejs/svelte/pull/2696))
146
147## 3.2.1
148
149* Use same comparison logic for `derived` as for other stores ([#2644](https://github.com/sveltejs/svelte/issues/2644))
150* Invalidate dependencies of reactive declarations ([#2444](https://github.com/sveltejs/svelte/issues/2444))
151* Fix instrumentation of auto-subscription self-assignments ([#2681](https://github.com/sveltejs/svelte/issues/2681))
152* Warn on non-top-level or module-context statements labeled with `$:` ([#2176](https://github.com/sveltejs/svelte/issues/2176))
153
154## 3.2.0
155
156* Improve `spring` animations, and add `hard`/`soft` options ([#2627](https://github.com/sveltejs/svelte/pull/2627))
157* Expose `parse` and `walk` functions ([#2661](https://github.com/sveltejs/svelte/issues/2661), [#2534](https://github.com/sveltejs/svelte/pull/2534))
158* Support array/object rest in `each` block destructuring patterns ([#2647](https://github.com/sveltejs/svelte/issues/2647), [#2658](https://github.com/sveltejs/svelte/pull/2658))
159* Use `setAttribute` to change `form` property on form elements ([#1742](https://github.com/sveltejs/svelte/issues/1742))
160* Fix a11y warning when `<figcaption>` is non-direct descendant of `<figure>` ([#2582](https://github.com/sveltejs/svelte/issues/2582))
161* Squelch erroneous 'empty block' warnings ([#1716](https://github.com/sveltejs/svelte/issues/1716))
162* Fix IE9/10 error with `insertBefore` ([#2573](https://github.com/sveltejs/svelte/issues/2573))
163* Prevent `$$scope` from being spread onto an element ([#2520](https://github.com/sveltejs/svelte/issues/2520))
164* Resubscribe to stores that are assigned to in `<script>` ([#2435](https://github.com/sveltejs/svelte/issues/2435))
165* Allow reactive declarations to depend on `const` variables ([#2285](https://github.com/sveltejs/svelte/issues/2285))
166* Trigger store changes on UpdateExpression ([#2625](https://github.com/sveltejs/svelte/issues/2625))
167* Squelch missing prop warning if variable is initialised ([#2635](https://github.com/sveltejs/svelte/issues/2635))
168* Add `alert`, `confirm` and `prompt` to known globals ([#2648](https://github.com/sveltejs/svelte/issues/2648))
169
170
171## 3.1.0
172
173* Allow store subscribe functions to return an object with an `unsubscribe` method, providing native RxJS support ([#2549](https://github.com/sveltejs/svelte/issues/2549))
174
175## 3.0.1
176
177* Prevent text input cursor jumping in Safari ([#2506](https://github.com/sveltejs/svelte/issues/2506))
178* Allow assignments to member expressions ([#2510](https://github.com/sveltejs/svelte/issues/2510))
179* Prevent mutually dependent functions causing an infinite during hoisting ([#2542](https://github.com/sveltejs/svelte/issues/2542))
180* Reuse scheduler promise instead of creating new one each time ([#2555](https://github.com/sveltejs/svelte/pull/2555))
181* Various site/docs fixes
182
183## 3.0.0
184
185* Everything
186
187## 2.15.4
188
189* IE `classList` fix ([#1868](https://github.com/sveltejs/svelte/pull/1868))
190
191## 2.15.3
192
193* Don't mutate AST
194
195## 2.15.2
196
197* Expose `stats.props` ([#1837](https://github.com/sveltejs/svelte/issues/1837))
198
199## 2.15.1
200
201* Don't throw missing store error when store is declared in component ([#1828](https://github.com/sveltejs/svelte/issues/1828))
202
203## 2.15.0
204
205* Event modifiers ([#1088](https://github.com/sveltejs/svelte/issues/1088))
206* Wheel and touch events are passive by default ([#1088](https://github.com/sveltejs/svelte/issues/1088))
207* Add `<svelte:document>` tag ([#1484](https://github.com/sveltejs/svelte/issues/1484))
208* Include binding values in server-rendered HTML ([#1205](https://github.com/sveltejs/svelte/issues/1205))
209* Remove attributes when value is undefined/null ([#1434](https://github.com/sveltejs/svelte/issues/1434))
210* Initialise window scroll from component data ([#938](https://github.com/sveltejs/svelte/issues/938))
211* Remove references to unused properties in generated code ([#1187](https://github.com/sveltejs/svelte/issues/1187))
212* Add TypeScript definitions for store ([#1207](https://github.com/sveltejs/svelte/issues/1207))
213* Better error for missing store ([#1807](https://github.com/sveltejs/svelte/issues/1807))
214
215## 2.14.3
216
217* Account for directive dependencies ([#1793](https://github.com/sveltejs/svelte/issues/1793))
218* Detach each block iterations in each blocks with no update method ([#1795](https://github.com/sveltejs/svelte/issues/1795))
219
220## 2.14.2
221
222* Fix issue with nested `{#if}` blocks ([#1780](https://github.com/sveltejs/svelte/issues/1780))
223
224## 2.14.1
225
226* Fix block insertion order regression ([#1778](https://github.com/sveltejs/svelte/issues/1778))
227* Fix blocks inside `<svelte:head>` ([#1774](https://github.com/sveltejs/svelte/issues/1774))
228* Better attribute parsing ([#1772](https://github.com/sveltejs/svelte/issues/1772))
229* Fix parse errors inside directives ([#1788](https://github.com/sveltejs/svelte/issues/1788))
230
231
232## 2.14.0
233
234* Refactor internals ([#1678](https://github.com/sveltejs/svelte/issues/1678))
235* Deprecate `onerror` option ([#1745](https://github.com/sveltejs/svelte/issues/1745))
236* Handle edge cases where `destroy` is called before `mount` ([#1653](https://github.com/sveltejs/svelte/pull/1653))
237* Make `scroll` binding more efficient ([#1579](https://github.com/sveltejs/svelte/pull/1770))
238* Make 'readonly property' store error more informative ([#1761](https://github.com/sveltejs/svelte/pull/1761))
239
240## 2.13.5
241
242* Fix missing dependencies in shorthand class directives ([#1739](https://github.com/sveltejs/svelte/issues/1739))
243
244## 2.13.4
245
246* Support dynamic `import()` in template expressions
247
248## 2.13.3
249
250* Fix bug with keyed each blocks and nested components ([#1706](https://github.com/sveltejs/svelte/issues/1706))
251
252## 2.13.2
253
254* Coalesce simultaneous store/component updates ([#1520](https://github.com/sveltejs/svelte/issues/1520))
255* Fix nested transitions preventing each block item removal ([#1617](https://github.com/sveltejs/svelte/issues/1617))
256* Add `class` directive shorthand and encapsulate styles ([#1695](https://github.com/sveltejs/svelte/pull/1695))
257* Prevent erroneous updates of bound inputs ([#1699](https://github.com/sveltejs/svelte/issues/1699))
258
259## 2.13.1
260
261* Coerce second argument to `toggleClass` ([#1685](https://github.com/sveltejs/svelte/issues/1685))
262
263## 2.13.0
264
265* Add `class` directive ([#890](https://github.com/sveltejs/svelte/issues/890))
266* Remove sourcemaps from npm package ([#1690](https://github.com/sveltejs/svelte/pull/1690))
267
268## 2.12.1
269
270* Allow actions to take any expression ([#1676](https://github.com/sveltejs/svelte/issues/1676))
271* Run transitions in component context ([#1675](https://github.com/sveltejs/svelte/issues/1675))
272* Correctly set select value on mount ([#1666](https://github.com/sveltejs/svelte/issues/1666))
273* Support `{@debug}` in SSR ([#1659](https://github.com/sveltejs/svelte/issues/1659))
274* Don't treat `&nbsp;` as empty whitespace ([#1658](https://github.com/sveltejs/svelte/issues/1658))
275* Fix outros for if blocks with no else ([#1688](https://github.com/sveltejs/svelte/pull/1688))
276* Set `style.cssText` in spread attributes ([#1684](https://github.com/sveltejs/svelte/pull/1684))
277
278
279## 2.12.0
280
281* Initialise actions on mount rather than hydrate ([#1653](https://github.com/sveltejs/svelte/pull/1653))
282* Allow non-existent components to be destroyed ([#1677](https://github.com/sveltejs/svelte/pull/1677))
283* Pass AMD ID from CLI correctly ([#1672](https://github.com/sveltejs/svelte/pull/1672))
284* Minor AST tweaks ([#1673](https://github.com/sveltejs/svelte/pull/1673), [#1674](https://github.com/sveltejs/svelte/pull/1674))
285* Reduce code duplication in component initialisation ([#1670](https://github.com/sveltejs/svelte/pull/1670))
286
287
288## 2.11.0
289
290* Add `--shared` CLI option ([#1649](https://github.com/sveltejs/svelte/pull/1649))
291* Run first `onstate` *before* fragment is rendered ([#1522](https://github.com/sveltejs/svelte/issues/1522))
292* Exclude current computed prop from state object ([#1544](https://github.com/sveltejs/svelte/issues/1544))
293
294
295## 2.10.1
296
297* Add sourcemaps to `{@debug}` tags ([#1647](https://github.com/sveltejs/svelte/pull/1647))
298
299## 2.10.0
300
301* Add a `{@debug}` tag, for inspecting values in templates in dev mode ([#1635](https://github.com/sveltejs/svelte/issues/1635))
302* Fix dimension bindings in iOS ([#1642](https://github.com/sveltejs/svelte/pull/1642))
303
304## 2.9.11
305
306* Pass props to custom elements rather than setting attributes, where appropriate ([#875](https://github.com/sveltejs/svelte/issues/875))
307* Handle whitespace in lists consistently between SSR and DOM renderers ([#1637](https://github.com/sveltejs/svelte/pull/1637))
308* Improve error for invalid `ref` names ([#1613](https://github.com/sveltejs/svelte/issues/1613))
309
310## 2.9.10
311
312* Handle `null` consistently in tags ([#1598](https://github.com/sveltejs/svelte/issues/1598))
313* Support object rest in computed properties ([#1540](https://github.com/sveltejs/svelte/issues/1540))
314* Always update dynamic components when expression changes ([#1621](https://github.com/sveltejs/svelte/issues/1621))
315* Encapsulate local styles inside global styles ([#1618](https://github.com/sveltejs/svelte/issues/1618))
316
317## 2.9.9
318
319* Fix attribute name regex ([#1623](https://github.com/sveltejs/svelte/pull/1623))
320
321## 2.9.8
322
323* Sanitize spread attributes in SSR — fixes vulnerability CVE-2018-6341 ([#1623](https://github.com/sveltejs/svelte/pull/1623))
324
325## 2.9.7
326
327* Allow `<input type=file bind:files>` ([#1608](https://github.com/sveltejs/svelte/issues/1608))
328* Ensure child window exists before removing listener in `addResizeHandler` ([#1600](https://github.com/sveltejs/svelte/issues/1600))
329* Handle transitions in `else` block ([#1589](https://github.com/sveltejs/svelte/issues/1589))
330
331## 2.9.6
332
333* Provide more useful error if SSR component attempts to render non-SSR component ([#1605](https://github.com/sveltejs/svelte/issues/1605))
334
335## 2.9.5
336
337* Null out refs to dynamic components ([#1596](https://github.com/sveltejs/svelte/issues/1596))
338
339## 2.9.4
340
341* Make identifier optional for `then` and `catch` blocks ([#1507](https://github.com/sveltejs/svelte/issues/1507))
342* Group outros correctly ([#1575](https://github.com/sveltejs/svelte/issues/1575))
343
344## 2.9.3
345
346* Fix bug when an each block contains transitions but its else branch does not ([#1559](https://github.com/sveltejs/svelte/issues/1559))
347* If an event handler throws an exception, don't block all future calls to that handler ([#1573](https://github.com/sveltejs/svelte/issues/1573))
348
349## 2.9.2
350
351* Fix conflict when using multiple if-else blocks, some of which use outros and some of which do not ([#1580](https://github.com/sveltejs/svelte/issues/1580))
352* Fix some cases where `.innerHTML` was being used to create child elements when it shouldn't ([#1581](https://github.com/sveltejs/svelte/issues/1581))
353
354## 2.9.1
355
356* Use `template.content` instead of `template` where appropriate ([#1571](https://github.com/sveltejs/svelte/issues/1571))
357
358## 2.9.0
359
360* Play outro transitions on `<svelte:component>` if `nestedTransitions` is true ([#1568](https://github.com/sveltejs/svelte/issues/1568))
361* Allow illegal identifiers to be component prop names, for e.g. spreading `data-foo` props ([#887](https://github.com/sveltejs/svelte/issues/887))
362* Abort transition when node is detached ([#1561](https://github.com/sveltejs/svelte/issues/1561))
363* Only include `transitionManager` when necessary ([#1514](https://github.com/sveltejs/svelte/issues/1514))
364
365## 2.8.1
366
367* Fix prefixed animation name replacement ([#1556](https://github.com/sveltejs/svelte/pull/1556))
368
369## 2.8.0
370
371* Correctly set store on nested components (to parent store, not root store) ([#1538](https://github.com/sveltejs/svelte/issues/1538))
372
373## 2.7.2
374
375* Prevent unnecessary remounts ([#1527](https://github.com/sveltejs/svelte/issues/1527))
376* Allow `refs.*` as callee ([#1526](https://github.com/sveltejs/svelte/pull/1526))
377* Handle empty lists when outroing ([#1532](https://github.com/sveltejs/svelte/issues/1532))
378
379## 2.7.1
380
381* Fix spread props with multiple dependencies ([#1515](https://github.com/sveltejs/svelte/issues/1515))
382
383## 2.7.0
384
385* Add `__svelte_meta` object to elements in dev mode, containing source info ([#1499](https://github.com/sveltejs/svelte/issues/1499))
386* Fix `bind:online` in dev mode ([#1502](https://github.com/sveltejs/svelte/issues/1502))
387* Update v1 warnings/errors ([#1508](https://github.com/sveltejs/svelte/pull/1508))
388* Transform prefixed keyframes ([#1504](https://github.com/sveltejs/svelte/issues/1504))
389
390## 2.6.6
391
392* Fix nested transition bug ([#1497](https://github.com/sveltejs/svelte/issues/1497))
393
394## 2.6.5
395
396* Handle cases where only some `if` block branches have outros ([#1492](https://github.com/sveltejs/svelte/issues/1492))
397
398## 2.6.4
399
400* Web worker support ([#1487](https://github.com/sveltejs/svelte/issues/1487))
401* Update dynamic component bindings when component changes ([#1489](https://github.com/sveltejs/svelte/issues/1489))
402
403## 2.6.3
404
405* Nested transitions respect `skipIntroByDefault` ([#1460](https://github.com/sveltejs/svelte/issues/1460))
406* Always create outro for top-level block ([#1470](https://github.com/sveltejs/svelte/issues/1470))
407
408## 2.6.2
409
410* Fix spread+bindings on dynamic components ([#1433](https://github.com/sveltejs/svelte/issues/1433))
411* Abort in-progress animations, if a new one starts ([#1458](https://github.com/sveltejs/svelte/issues/1458))
412* Allow animations to be parameterised ([#1462](https://github.com/sveltejs/svelte/issues/1462))
413
414## 2.6.1
415
416* Absolutely position outroing animated nodes ([#1457](https://github.com/sveltejs/svelte/pull/1457))
417
418## 2.6.0
419
420* Add `animate` directive ([#1454](https://github.com/sveltejs/svelte/pull/1454))
421* Add `skipIntroByDefault` compiler option and `intro: true` init option ([#1448](https://github.com/sveltejs/svelte/pull/1448))
422* Add `nestedTransitions` compiler option ([#1451](https://github.com/sveltejs/svelte/pull/1451))
423* Component outros, if `nestedTransitions` is true ([#1211](https://github.com/sveltejs/svelte/issues/1211))
424* Allow transition functions to return a function, for inter-transition coordination ([#1453](https://github.com/sveltejs/svelte/pull/1453))
425* Pass `1 - t` as second argument to transition functions ([#1452](https://github.com/sveltejs/svelte/pull/1452))
426
427## 2.5.1
428
429* Add new ARIA attributes ([#1436](https://github.com/sveltejs/svelte/pull/1436))
430* Add `Promise` to whitelisted globals ([#1441](https://github.com/sveltejs/svelte/issues/1441))
431* Allow spaces around reserved keyword attributes ([#1445](https://github.com/sveltejs/svelte/issues/1445))
432
433## 2.5.0
434
435* Support transitions in `await` blocks ([#956](https://github.com/sveltejs/svelte/issues/956))
436* Abort outros if block is recreated ([#1425](https://github.com/sveltejs/svelte/issues/1425))
437* Wait until transitions have completed before removing styles ([#648](https://github.com/sveltejs/svelte/issues/648))
438* Support event shorthand on dynamic components ([#1427](https://github.com/sveltejs/svelte/pull/1427))
439* Various codegen improvements ([#1419](https://github.com/sveltejs/svelte/pull/1419), [#1421](https://github.com/sveltejs/svelte/pull/1421), [#1422](https://github.com/sveltejs/svelte/pull/1422), [#1424](https://github.com/sveltejs/svelte/pull/1424))
440* Correctly handle `await` blocks with no dynamic content ([#1417](https://github.com/sveltejs/svelte/issues/1417))
441* Allow spread props on elements with static attribute tests ([#1429](https://github.com/sveltejs/svelte/pull/1429))
442
443
444## 2.4.4
445
446* Declare missing variable in Store ([#1415](https://github.com/sveltejs/svelte/issues/1415))
447* ALways declare spread levels ([#1413](https://github.com/sveltejs/svelte/issues/1413))
448
449## 2.4.3
450
451* `ref` directives prevent HTMLified content ([#1407](https://github.com/sveltejs/svelte/issues/1407))
452* Store computed properties update components immediately upon declaration ([#1327](https://github.com/sveltejs/svelte/issues/1327))
453
454## 2.4.2
455
456* Evaluate `each` key in child scope ([#1397](https://github.com/sveltejs/svelte/issues/1397))
457* Prevent false negatives and positives when detecting cyclical computed store properties ([#1399](https://github.com/sveltejs/svelte/issues/1399))
458* Only update dynamic component props ([#1394](https://github.com/sveltejs/svelte/issues/1394))
459
460## 2.4.1
461
462* Fix DOM event context ([#1390](https://github.com/sveltejs/svelte/issues/1390))
463
464## 2.4.0
465
466* Integrate CLI ([#1360](https://github.com/sveltejs/svelte/issues/1360))
467* Allow arbitrary destructuring for each block items, with binding ([#1385](https://github.com/sveltejs/svelte/pull/1385))
468* Each block keys can use arbitrary expressions ([#703](https://github.com/sveltejs/svelte/issues/703))
469* `bind:offsetWidth`, `bind:offsetHeight`, `bind:clientWidth` and `bind:clientHeight` ([#984](https://github.com/sveltejs/svelte/issues/984))
470* Leaner generated code for `each` blocks ([#1287](https://github.com/sveltejs/svelte/issues/1287))
471
472
473## 2.3.0
474
475* Allow computed properties to have entire state object as dependency ([#1303](https://github.com/sveltejs/svelte/issues/1303))
476* Fix `stats` when `options.generate` is `false` ([#1368](https://github.com/sveltejs/svelte/issues/1368))
477* Assign custom methods to custom elements ([#1369](https://github.com/sveltejs/svelte/issues/1369))
478* Fix `this` value in custom event handlers ([#1297](https://github.com/sveltejs/svelte/issues/1297))
479* Re-evaluate `each` values lazily ([#1286](https://github.com/sveltejs/svelte/issues/1286))
480* Preserve outer context in `await` blocks ([#1251](https://github.com/sveltejs/svelte/issues/1251))
481
482## 2.2.0
483
484* Internal refactoring ([#1367](https://github.com/sveltejs/svelte/pull/1367))
485
486## 2.1.1
487
488* Report initial `changed` based on state, not expected props ([#1356](https://github.com/sveltejs/svelte/issues/1356))
489* Set state to empty object, not null, on destroy ([#1354](https://github.com/sveltejs/svelte/issues/1354))
490* Prevent stale state in component event handlers ([#1353](https://github.com/sveltejs/svelte/issues/1353))
491
492## 2.1.0
493
494* Allow shorthand imports ([#1038](https://github.com/sveltejs/svelte/issues/1038))
495* Update spread props inside each blocks ([#1337](https://github.com/sveltejs/svelte/issues/1337))
496
497## 2.0.0
498
499*See [the blog post](https://svelte.dev/blog/version-2) for information on how to upgrade your apps*
500
501* New template syntax ([#1318](https://github.com/sveltejs/svelte/issues/1318))
502* Emit ES2015 code, not ES5 ([#1348](https://github.com/sveltejs/svelte/pull/1348))
503* Add `onstate` and `onupdate` hooks, remove `component.observe` method ([#1197](https://github.com/sveltejs/svelte/issues/1197))
504* Use destructuring syntax for computed properties ([#1069](https://github.com/sveltejs/svelte/issues/1069)
505* Change signature of `svelte.compile` ([#1298](https://github.com/sveltejs/svelte/pull/1298))
506* Remove `validate` and `Stylesheet` from public API ([#1348](https://github.com/sveltejs/svelte/pull/1348))
507* Don't typecast numeric attributes ([#657](https://github.com/sveltejs/svelte/issues/657))
508* Always compile with `Store` support, and cascading disabled ([#1348](https://github.com/sveltejs/svelte/pull/1348))
509* Remove unused `hash` property from AST ([#1348](https://github.com/sveltejs/svelte/pull/1348))
510* Rename `loc` property to `start` in warnings and errors ([#1348](https://github.com/sveltejs/svelte/pull/1348))
511
512## 1.64.1
513
514* Fix computed properties in SSR renderer ([#1349](https://github.com/sveltejs/svelte/issues/1349))
515
516## 1.64.0
517
518* Deprecate passing a string argument to `component.get` ([#1347](https://github.com/sveltejs/svelte/pull/1347))
519
520## 1.63.1
521
522* Allow `observe` method to be overwritten
523
524## 1.63.0
525
526* Add `onstate` and `onupdate` lifecycle hooks and deprecate `component.observe` ([#1197](https://github.com/sveltejs/svelte/issues/1197))
527* Add `on` and `fire` to `Store`, deprecate `onchange` and `observe` ([#1344](https://github.com/sveltejs/svelte/pull/1344))
528* Require computed properties to have destructured argument in v2 mode ([#1069](https://github.com/sveltejs/svelte/issues/1069))
529
530## 1.62.0
531
532* Add a `code` field to errors and warnings ([#474](https://github.com/sveltejs/svelte/issues/474))
533* When using v2 syntax, do not use interpolation in non-root `<style>` tags ([#1339](https://github.com/sveltejs/svelte/issues/1339))
534
535## 1.61.0
536
537* Support v2 syntax with `parser: 'v2'` option ([#1318](https://github.com/sveltejs/svelte/issues/1318))
538
539## 1.60.3
540
541* Fix validation of `multiple` attributes on bound `<select>` elements ([#1331](https://github.com/sveltejs/svelte/issues/1331))
542
543## 1.60.2
544
545* Fix order of insertions for keyed each blocks with siblings ([#1306](https://github.com/sveltejs/svelte/issues/1306))
546* Bail out of CSS DCE if element has spread attribute ([#1300](https://github.com/sveltejs/svelte/issues/1300))
547* Allow `console` etc in component events ([#1278](https://github.com/sveltejs/svelte/issues/1278))
548* Deconflict against inherited contexts ([#1275](https://github.com/sveltejs/svelte/issues/1275))
549* Make CSS DCE case insensitive ([#1269](https://github.com/sveltejs/svelte/issues/1269))
550* Error on dynamic `multiple` attribute for bound select ([#1270](https://github.com/sveltejs/svelte/issues/1270))
551* Allow custom events on `<:Window>` ([#1268](https://github.com/sveltejs/svelte/issues/1268))
552
553## 1.60.1
554
555* Fix spread updates on dynamic components ([#1307](https://github.com/sveltejs/svelte/issues/1307))
556
557## 1.60.0
558
559* Spread properties ([#195](https://github.com/sveltejs/svelte/issues/195))
560* `svelte.compile` returns an object with `{ js, css, ast }` properties, where `js` and `css` are `{ code, map }` objects ([#1298](https://github.com/sveltejs/svelte/pull/1298))
561* Fixed broken compile errors when using Rollup ([#1296](https://github.com/sveltejs/svelte/pull/1296))
562
563## 1.59.0
564
565* Deprecate `teardown` in custom event handlers ([#531](https://github.com/sveltejs/svelte/issues/531))
566* Allow static content in keyed `each` block ([#1291](https://github.com/sveltejs/svelte/issues/1291))
567* Allow empty content in keyed `each` block ([#1295](https://github.com/sveltejs/svelte/issues/1295))
568* Only delete applicable transitions ([#1290](https://github.com/sveltejs/svelte/issues/1290))
569
570## 1.58.5
571
572* Allow backtick string literals for `svg`, `tag`, and `props` properties ([#1284](https://github.com/sveltejs/svelte/issues/1284))
573* Fix removal of transition styles under Firefox ([#1288](https://github.com/sveltejs/svelte/pull/1288))
574
575## 1.58.4
576
577* Fix initial state regression ([#1283](https://github.com/sveltejs/svelte/pull/1283))
578
579## 1.58.3
580
581* Actions run in the context of the component ([#1279](https://github.com/sveltejs/svelte/pull/1279))
582* Set refs when mounting dynamic components ([#1280](https://github.com/sveltejs/svelte/pull/1280))
583
584## 1.58.2
585
586* (1.58.1 failed to publish)
587
588## 1.58.1
589
590* Actions ([#1247](https://github.com/sveltejs/svelte/pull/1247))
591* Support `preserveComments` option in SSR mode ([#1265](https://github.com/sveltejs/svelte/issues/1265))
592* Fix performance regression ([#1274](https://github.com/sveltejs/svelte/pull/1274))
593
594## 1.58.0
595
596* Fast row swapping ([#588](https://github.com/sveltejs/svelte/issues/588))
597* Better error messages for invalid directives ([#1242](https://github.com/sveltejs/svelte/pull/1242))
598* Fix local context variable bugs ([#1240](https://github.com/sveltejs/svelte/pull/1243), [#1254](https://github.com/sveltejs/svelte/pull/1254))
599* Skip missing property warnings for computed/global properties in dev mode ([#1246](https://github.com/sveltejs/svelte/pull/1246))
600* Add end position to warnings ([#1250](https://github.com/sveltejs/svelte/pull/1250))
601
602## 1.57.4
603
604* Deconflict context names ([#1229](https://github.com/sveltejs/svelte/issues/1229))
605* Use `setAttribute` to set input types ([#1209](https://github.com/sveltejs/svelte/issues/1209))
606* Scale transition duration correctly ([#1221](https://github.com/sveltejs/svelte/issues/1221))
607
608## 1.57.3
609
610* Fix scoped CSS on static child elements ([#1223](https://github.com/sveltejs/svelte/issues/1223))
611
612## 1.57.2
613
614* Fix scoped CSS on SVG elements ([#1224](https://github.com/sveltejs/svelte/issues/1224))
615
616## 1.57.1
617
618* Add each_value to contextProps ([#1206](https://github.com/sveltejs/svelte/issues/1206))
619
620## 1.57.0
621
622* Use classes (not attributes) for style encapsulation, and base36-encode hashes ([#1118](https://github.com/sveltejs/svelte/issues/1118))
623
624## 1.56.4
625
626* Allow `component` and `state` to be context names ([#1213](https://github.com/sveltejs/svelte/issues/1213))
627* Don't remove `@supports` rules when `cascade: false` ([#1215](https://github.com/sveltejs/svelte/issues/1215))
628
629## 1.56.3
630
631* Top-level transitions work inside nested components ([#1188](https://github.com/sveltejs/svelte/issues/1188))
632* Always use internal `_mount` method ([#1201](https://github.com/sveltejs/svelte/issues/1201))
633
634## 1.56.2
635
636* Null out `key` for children of keyed each blocks ([#1202](https://github.com/sveltejs/svelte/issues/1202))
637
638## 1.56.1
639
640* Fix if-in-each bug ([#1195](https://github.com/sveltejs/svelte/issues/1195))
641* Cross-browser `scrollX`/`scrollY` support ([#1175](https://github.com/sveltejs/svelte/issues/1175))
642
643## 1.56.0
644
645* Internal refactor ([#1122](https://github.com/sveltejs/svelte/issues/1122))
646* Use correct context for component events ([#1184](https://github.com/sveltejs/svelte/issues/1184))
647* Allow observing `$foo` in dev mode ([#1181](https://github.com/sveltejs/svelte/issues/1181))
648* Handle dynamic data in default slot ([#1144](https://github.com/sveltejs/svelte/issues/1144))
649
650## 1.55.1
651
652* Fix cancellation of store `onchange` handlers ([#1177](https://github.com/sveltejs/svelte/issues/1177))
653* Write `["default"]` instead of `.default` in legacy mode ([#1166](https://github.com/sveltejs/svelte/issues/1166))
654* Upgrade Acorn ([#1182](https://github.com/sveltejs/svelte/pull/1182))
655* Don't warn about capitalisation if `options.name` begins with non-alphabetical character ([#1179](https://github.com/sveltejs/svelte/pull/1179))
656
657## 1.55.0
658
659* Add `immutable` compiler option for Svelte and runtime option for `Store` ([#1146](https://github.com/sveltejs/svelte/issues/1146))
660* Fix component store bindings ([#1100](https://github.com/sveltejs/svelte/issues/1100))
661* Fire `oncreate` when custom element is attached ([#1117](https://github.com/sveltejs/svelte/issues/1117))
662* Downgrade empty blocks to a warning ([#1156](https://github.com/sveltejs/svelte/pull/1156))
663* Error on unclosed comment ([#1156](https://github.com/sveltejs/svelte/pull/1156))
664
665## 1.54.2
666
667* Prevent `await` blocks using stale state ([#1131](https://github.com/sveltejs/svelte/issues/1131))
668* Prevent erroneous missing data warnings for custom elements ([#1065](https://github.com/sveltejs/svelte/issues/1065))
669* Remove empty selectors in prod mode ([#1138](https://github.com/sveltejs/svelte/issues/1138))
670* Escape attribute values in SSR mode ([#1155](https://github.com/sveltejs/svelte/pull/1155))
671* Remove `<noscript>` elements in DOM mode ([#1108](https://github.com/sveltejs/svelte/issues/1108))
672* Allow hydration of non-root `<script>`/`<style>` tags ([#1163](https://github.com/sveltejs/svelte/pull/1163))
673* Allow interpolation in non-root `<style>` tags ([#1163](https://github.com/sveltejs/svelte/pull/1163))
674
675## 1.54.1
676
677* Hoist destructured references ([#1139](https://github.com/sveltejs/svelte/issues/1139))
678* Add `bind:volume` for media elements ([#1143](https://github.com/sveltejs/svelte/issues/1143))
679
680## 1.54.0
681
682* Run `oncreate` hooks depth-first, top-to-bottom ([#1135](https://github.com/sveltejs/svelte/issues/1135))
683* Render boolean attributes correctly in SSR mode ([#1109](https://github.com/sveltejs/svelte/issues/1109))
684* Add `feed` aria role to expected roles when doing a11y checks ([#1124](https://github.com/sveltejs/svelte/pull/1124))
685* More complete fix for case sensitive attributes ([#1062](https://github.com/sveltejs/svelte/issues/1062))
686* Handle CLRF line endings in await block comments ([#1132](https://github.com/sveltejs/svelte/issues/1132))
687
688## 1.53.0
689
690* Base scoping selectors on `<style>` contents alone ([#1091](https://github.com/sveltejs/svelte/issues/1091))
691
692## 1.52.0
693
694* Deconflict referenced globals ([#1079](https://github.com/sveltejs/svelte/issues/1079))
695* Validate contents of `await` blocks ([#1061](https://github.com/sveltejs/svelte/issues/1061))
696* Fire `oncreate` for components in `await` blocks ([#1061](https://github.com/sveltejs/svelte/issues/1061))
697* Automatically fix attribute casing ([#1062](https://github.com/sveltejs/svelte/issues/1062))
698* Fix escaping in `<script>` and `<style>` ([#1082](https://github.com/sveltejs/svelte/issues/1082))
699* Error if invalid characters are used in computed properties, and allow any valid identifier in props ([#1083](https://github.com/sveltejs/svelte/issues/1083))
700* Don't run a11y tests on components ([#1110](https://github.com/sveltejs/svelte/issues/1110))
701* Respect `store` option in SSR mode ([#1107](https://github.com/sveltejs/svelte/issues/1107))
702
703## 1.51.1
704
705* Only escape <, > and & characters ([#1082](https://github.com/sveltejs/svelte/issues/1082))
706
707## 1.51.0
708
709* Lock `scroll` bindings ([#1071](https://github.com/sveltejs/svelte/issues/1071))
710* Escape HTML entities when compiling to static HTML ([#1066](https://github.com/sveltejs/svelte/issues/1066))
711* Apply a11y warnings to SVG `<a>` attributes with `xlink:href` ([#1008](https://github.com/sveltejs/svelte/issues/1008))
712
713## 1.50.1
714
715* Prevent main fragment being created twice in custom elements ([#1064](https://github.com/sveltejs/svelte/pull/1064))
716
717## 1.50.0
718
719* Detect unused/misplaced components ([#1039](https://github.com/sveltejs/svelte/issues/1039))
720* Warn on unused event definitions/transitions ([#1051](https://github.com/sveltejs/svelte/issues/1051))
721* Remove whitespace inside `<:Head>` ([#1026](https://github.com/sveltejs/svelte/issues/1026))
722* Optimise `<title>` ([#1027](https://github.com/sveltejs/svelte/issues/1027))
723* Add `bind: false` option to disable two-way binding ([#54](https://github.com/sveltejs/svelte/issues/54))
724
725## 1.49.3
726
727* Return `html` from SSR compiler `render().toString()` methods ([#1044](https://github.com/sveltejs/svelte/issues/1044))
728* Correctly reinitialise dynamic components ([#1040](https://github.com/sveltejs/svelte/issues/1040))
729* Allow `<option>` outside `<select>` ([#1022](https://github.com/sveltejs/svelte/issues/1022))
730* Fix data references in await-block event handlers ([#1032](https://github.com/sveltejs/svelte/issues/1032))
731
732## 1.49.2
733
734* Add `store.umd.js` ([#967](https://github.com/sveltejs/svelte/issues/967))
735* Warn on use of `this` inside computed properties ([#1033](https://github.com/sveltejs/svelte/pull/1033))
736
737## 1.49.1
738
739* Pass `store` to children in SSR mode ([#1029](https://github.com/sveltejs/svelte/pull/1029))
740
741## 1.49.0
742
743* Support `store` as a component property ([#1028](https://github.com/sveltejs/svelte/pull/1028))
744
745## 1.48.0
746
747* Added `<:Head>` component for injecting contents into document head ([#1013](https://github.com/sveltejs/svelte/issues/1013)))
748* SSR `render(...)` method now returns a `{ html, css: { code, map }, head }` object ([#1013](https://github.com/sveltejs/svelte/issues/1013))
749* SSR `renderCss(...)` method is deprecated ([#1013](https://github.com/sveltejs/svelte/issues/1013))
750* Add a `preload` function to components ([#1015](https://github.com/sveltejs/svelte/issues/1015))
751* Expose `this.root` on nested components ([#1023](https://github.com/sveltejs/svelte/pull/1023))
752
753## 1.47.2
754
755* Deconflict computed properties against arguments to `_recompute` ([#1012](https://github.com/sveltejs/svelte/issues/1012))
756* Allow `await` blocks in slots ([#1018](https://github.com/sveltejs/svelte/issues/1018))
757* Allow components without slots to have whitespace as only child ([#1007](https://github.com/sveltejs/svelte/issues/1007))
758* Correctly set `toString` on `CompileError` ([#1016](https://github.com/sveltejs/svelte/pull/1016))
759
760## 1.47.1
761
762* Sanitize filenames in SSR mode ([#1005](https://github.com/sveltejs/svelte/issues/1005))
763
764## 1.47.0
765
766* Support dynamic `import(...)` inside `<script>` tags ([#1003](https://github.com/sveltejs/svelte/issues/1003))
767
768## 1.46.1
769
770* `await...then` shorthand ([#957](https://github.com/sveltejs/svelte/issues/957))
771* Allow dynamic components inside elements ([#993](https://github.com/sveltejs/svelte/issues/993))
772* Don't use `dataset` on SVG nodes ([#982](https://github.com/sveltejs/svelte/issues/982))
773* Fix erroneous `<figcaption>` a11y warning ([#991](https://github.com/sveltejs/svelte/issues/991))
774* Handle empty classes when pruning unused selectors ([#978](https://github.com/sveltejs/svelte/issues/978))
775* Better trimming of SSR'd output ([#976](https://github.com/sveltejs/svelte/issues/976))
776* Don't add `event` to `expectedProperties` ([#972](https://github.com/sveltejs/svelte/issues/972))
777* Emit error on bad `set` arguments in dev mode ([#990](https://github.com/sveltejs/svelte/issues/990))
778
779## 1.46.0
780
781* Pass `filename` through to preprocessors ([#983](https://github.com/sveltejs/svelte/issues/983))
782
783## 1.45.0
784
785* Dynamic components ([#971](https://github.com/sveltejs/svelte/pull/971))
786
787## 1.44.2
788
789* Fix `await` blocks with siblings ([#974](https://github.com/sveltejs/svelte/issues/974))
790* Fix `await` blocks inside `if` blocks ([#975](https://github.com/sveltejs/svelte/issues/975))
791
792## 1.44.1
793
794* Fix bidirectional transitions that reference state ([#962](https://github.com/sveltejs/svelte/issues/962))
795
796## 1.44.0
797
798* Add `svelte.preprocess` ([#181](https://github.com/sveltejs/svelte/issues/181), [#876](https://github.com/sveltejs/svelte/issues/876))
799* Add `{{#await ...}}` blocks ([#654](https://github.com/sveltejs/svelte/issues/654))
800
801## 1.43.1
802
803* Fix parameterised transitions ([#962](https://github.com/sveltejs/svelte/issues/962))
804* Prevent boolean attributes breaking estree-walker expectations ([#961](https://github.com/sveltejs/svelte/issues/961))
805* Throw error on cyclical store computations ([#964](https://github.com/sveltejs/svelte/pull/964))
806
807## 1.43.0
808
809* Export `Store` class to manage global state ([#930](https://github.com/sveltejs/svelte/issues/930))
810* Recognise `aria-current` ([#953](https://github.com/sveltejs/svelte/pull/953))
811* Support SSR register options including `extensions` ([#939](https://github.com/sveltejs/svelte/issues/939))
812* Friendlier error for illegal contexts ([#934](https://github.com/sveltejs/svelte/issues/934))
813* Remove whitespace around `<:Window>` components ([#943](https://github.com/sveltejs/svelte/issues/943))
814
815## 1.42.1
816
817* Correctly append items inside a slotted `each` block ([#932](https://github.com/sveltejs/svelte/pull/932))
818* Fix `<:Window bind:online/>` ([#936](https://github.com/sveltejs/svelte/issues/936))
819* Attach globals to state upon initialisation ([#908](https://github.com/sveltejs/svelte/issues/908))
820
821## 1.42.0
822
823* Implement `indeterminate` binding for checkbox inputs ([#910](https://github.com/sveltejs/svelte/issues/910))
824* Use `<option>` children as `value` attribute if none exists ([#928](https://github.com/sveltejs/svelte/issues/928))
825* Allow quoted property names in default export and sub-properties ([#914](https://github.com/sveltejs/svelte/issues/914))
826* Various improvements to generated code for bindings
827
828## 1.41.4
829
830* Handle self-destructive bindings ([#917](https://github.com/sveltejs/svelte/issues/917))
831* Prevent `innerHTML` with `<option>` elements ([#915](https://github.com/sveltejs/svelte/issues/915))
832* Use `dataset` unless `legacy` is true ([#858](https://github.com/sveltejs/svelte/issues/858))
833* Add `prepare` script to facilitate installing from git ([#923](https://github.com/sveltejs/svelte/pull/923))
834
835## 1.41.3
836
837* Prevent argument name clashes ([#911](https://github.com/sveltejs/svelte/issues/911))
838* Fix UMD factory arguments ([#918](https://github.com/sveltejs/svelte/pull/918))
839* Don't attempt to set computed values ([#893](https://github.com/sveltejs/svelte/issues/893))
840* Fix TypeScript build error ([#919](https://github.com/sveltejs/svelte/issues/919))
841
842## 1.41.2
843
844* Handle attribute selectors with no value ([#905](https://github.com/sveltejs/svelte/issues/905))
845* Retain `async` keyword when extracting functions ([#904](https://github.com/sveltejs/svelte/issues/904))
846* Shallow clone `data` on initialisation ([#891](https://github.com/sveltejs/svelte/pull/891))
847
848## 1.41.1
849
850* Fix updates of destructured each blocks ([#897](https://github.com/sveltejs/svelte/pull/897))
851* Don't warn on `options.*` event handler callee ([#900](https://github.com/sveltejs/svelte/pull/900))
852
853## 1.41.0
854
855* `onwarn` and `onerror` receive default handlers as second arguments ([#883](https://github.com/sveltejs/svelte/pull/883))
856* Recognise `muted` as boolean property on `<audio>` elements ([#886](https://github.com/sveltejs/svelte/pull/886))
857* Array destructuring for `each` block contexts ([#889](https://github.com/sveltejs/svelte/pull/889))
858
859## 1.40.2
860
861* Ignore `@apply` and similar in CSS ([#871](https://github.com/sveltejs/svelte/issues/871))
862* Properly escape CSS in custom elements ([#872](https://github.com/sveltejs/svelte/issues/872))
863
864## 1.40.1
865
866* Always use explicit closing tags with `innerHTML` ([#866](https://github.com/sveltejs/svelte/issues/866))
867* Escape text in `textContent` and `innerHTML` expressions ([#868](https://github.com/sveltejs/svelte/issues/868))
868
869## 1.40.0
870
871* Short fragment method names ([#863](https://github.com/sveltejs/svelte/pull/863))
872* Extract declarations out of default export ([#756](https://github.com/sveltejs/svelte/issues/756))
873
874## 1.39.4
875
876* Extract shared init logic ([#855](https://github.com/sveltejs/svelte/pull/855))
877* Allow `console.*` calls in event handlers ([#782](https://github.com/sveltejs/svelte/issues/782))
878* Marker comments in output ([#823](https://github.com/sveltejs/svelte/issues/823))
879* Use `textContent` and `innerHTML` where appropriate ([#23](https://github.com/sveltejs/svelte/issues/23))
880* Various improvements to generated code
881
882## 1.39.3
883
884* Allow `slot='...'` inside custom elements ([#827](https://github.com/sveltejs/svelte/issues/827))
885* Disallow `slot='...'` inside if/each blocks ([#849](https://github.com/sveltejs/svelte/issues/849))
886* Use correct parent node for slotted if blocks ([#850](https://github.com/sveltejs/svelte/issues/850))
887
888## 1.39.2
889
890* Escape CSS in shadow DOM ([#840](https://github.com/sveltejs/svelte/issues/840))
891* Fix missing anchor bug inside SVG elements ([#843](https://github.com/sveltejs/svelte/issues/843))
892
893## 1.39.1
894
895* Always use anchors for slotted content ([#822](https://github.com/sveltejs/svelte/issues/822))
896* Prevent ES6 in helpers ([#838](https://github.com/sveltejs/svelte/issues/838))
897* Correctly determine whether to use `timeRangesToArray` ([#837](https://github.com/sveltejs/svelte/pull/837))
898
899## 1.39.0
900
901* Always attach fragment to shadow root ([#821](https://github.com/sveltejs/svelte/issues/821))
902* Add `buffered`, `seekable`, `played` bindings to media elements ([#819](https://github.com/sveltejs/svelte/pull/819))
903* Quote `class` properties in legacy mode ([#830](https://github.com/sveltejs/svelte/issues/830))
904* Warn on missing `lang` attribute on `<html>` ([#828](https://github.com/sveltejs/svelte/pull/828))
905
906## 1.38.0
907
908* Compile-time a11y warnings ([#815](https://github.com/sveltejs/svelte/pull/815))
909* Remove redundant input blowback guards ([#645](https://github.com/sveltejs/svelte/issues/645))
910* Use component name in debugging messages ([#781](https://github.com/sveltejs/svelte/issues/781))
911
912## 1.37.0
913
914* Experimental support for compiling to custom elements ([#797](https://github.com/sveltejs/svelte/issues/797))
915
916## 1.36.0
917
918* Optimize `style` attributes where possible ([#455](https://github.com/sveltejs/svelte/issues/455))
919
920## 1.35.0
921
922* `set` and `get` continue to work until `destroy` is complete ([#788](https://github.com/sveltejs/svelte/issues/788))
923* Observers of unchanged bound values don't fire incorrectly ([#804](https://github.com/sveltejs/svelte/issues/804))
924* Nested components with slotted content render correctly in SSR mode ([#801](https://github.com/sveltejs/svelte/issues/801))
925* More efficient rendering of raw and slotted content ([#637](https://github.com/sveltejs/svelte/issues/637))
926* Handle unquoted attributes in attribute selectors ([#798](https://github.com/sveltejs/svelte/issues/798))
927
928## 1.34.0
929
930* Support nested `<slot>` elements ([#790](https://github.com/sveltejs/svelte/issues/790))
931* Attach `options` to instance ([#550](https://github.com/sveltejs/svelte/issues/550), [#777](https://github.com/sveltejs/svelte/issues/777))
932* Error if transitions are applied to component ([#791](https://github.com/sveltejs/svelte/issues/791))
933* Handle CSS variables in `<style>` tag ([#757](https://github.com/sveltejs/svelte/issues/757))
934
935## 1.33.0
936
937* Replace `{{yield}}` with `<slot>` — adds fallback content named slots, and `options.slots` ([#763](https://github.com/sveltejs/svelte/issues/763))
938
939## 1.32.0
940
941* Allow `anchor` initialisation option, alongside `target` ([#784](https://github.com/sveltejs/svelte/issues/784))
942* Remove leading CSS selectors safely ([#783](https://github.com/sveltejs/svelte/issues/783))
943
944## 1.31.0
945
946* Add `legacy` compile option, which adds IE9 compatibility ([#773](https://github.com/sveltejs/svelte/issues/773))
947
948## 1.30.0
949
950* Update all component bindings simultaneously ([#760](https://github.com/sveltejs/svelte/issues/760))
951* Fix `@keyframes` atrules with `from` and `to` selectors ([#774](https://github.com/sveltejs/svelte/issues/774))
952
953## 1.29.3
954
955* Only recompute tag and attribute values if they could have changed ([#768](https://github.com/sveltejs/svelte/issues/768))
956* Fix CSS scoping with multiple levels of descendant selectors ([#767](https://github.com/sveltejs/svelte/issues/767))
957
958## 1.29.2
959
960* Preserve space before non-parenthesized media query expression ([#759](https://github.com/sveltejs/svelte/issues/759))
961* Call `create()` on new iterations of static each blocks ([#762](https://github.com/sveltejs/svelte/issues/762))
962* Use `change` events as well as `input` events to bind range inputs ([#740](https://github.com/sveltejs/svelte/issues/740))
963
964## 1.29.1
965
966* Replace `set` and `destroy` with `noop` when component is destroyed ([#744](https://github.com/sveltejs/svelte/issues/744))
967
968## 1.29.0
969
970* Add static `setup` method ([#578](https://github.com/sveltejs/svelte/issues/578))
971* Hoist if block selectors ([#751](https://github.com/sveltejs/svelte/pull/751))
972* More sigil escaping fixes ([#750](https://github.com/sveltejs/svelte/pull/750))
973
974## 1.28.1
975
976* Fix unescaping of special words in SSR mode ([#741](https://github.com/sveltejs/svelte/issues/741))
977
978## 1.28.0
979
980* Support `ref:foo` as a CSS selector ([#693](https://github.com/sveltejs/svelte/issues/693))
981* Prevent magic-string bugs by only minifying CSS combinators if `cascade: false` ([#743](https://github.com/sveltejs/svelte/issues/743))
982* Don't throw an error if component is destroyed twice ([#643](https://github.com/sveltejs/svelte/issues/643))
983
984## 1.27.0
985
986* Minify CSS and remove unused styles ([#697](https://github.com/sveltejs/svelte/issues/697))
987* Optimize ternary expressions when excluding unused CSS ([#696](https://github.com/sveltejs/svelte/issues/696))
988* Clear refs after `ondestroy` callbacks fire ([#706](https://github.com/sveltejs/svelte/issues/706))
989* Prevent certain forms of component binding blowback ([#721](https://github.com/sveltejs/svelte/issues/721))
990* Use helper to encapsulate styles ([#375](https://github.com/sveltejs/svelte/issues/375))
991* Event propagation shorthand — `on:foo` equals `on:foo='fire("foo", event)` ([#638](https://github.com/sveltejs/svelte/issues/638))
992* Allow `refs.*` in event handlers, and validate them ([#686](https://github.com/sveltejs/svelte/issues/686))
993
994## 1.26.2
995
996* Unescape `#` characters ([#722](https://github.com/sveltejs/svelte/issues/722))
997
998## 1.26.1
999
1000* Fix select binding regression ([#724](https://github.com/sveltejs/svelte/issues/724))
1001
1002## 1.26.0
1003
1004* Enforce correct order of operations when initialising ([#708](https://github.com/sveltejs/svelte/issues/708) and [#714](https://github.com/sveltejs/svelte/issues/714))
1005* Ensure data is up-to-date when re-rendering yield block ([#711](https://github.com/sveltejs/svelte/issues/711))
1006* Fix unescaping of strings, preserve at-rules in CSS ([#712](https://github.com/sveltejs/svelte/issues/712))
1007* Preserve whitespace at end of each blocks ([#713](https://github.com/sveltejs/svelte/issues/713))
1008
1009## 1.25.1
1010
1011* Better CSS sourcemaps ([#716](https://github.com/sveltejs/svelte/pull/716))
1012
1013## 1.25.0
1014
1015* Fix hoisted event handlers ([#699](https://github.com/sveltejs/svelte/issues/699))
1016* Fire `intro.start` and `outro.start` events ([#702](https://github.com/sveltejs/svelte/issues/702))
1017* Preserve order of components in keyed each blocks ([#700](https://github.com/sveltejs/svelte/issues/700))
1018* Add `cssMap` property to compiler output ([#698](https://github.com/sveltejs/svelte/pull/698/))
1019
1020## 1.24.0
1021
1022* Deconflict names with imports in SSR compiler ([#655](https://github.com/sveltejs/svelte/issues/655))
1023* Improved transition performance ([#670](https://github.com/sveltejs/svelte/pull/670))
1024* Run transitions on initial render ([#651](https://github.com/sveltejs/svelte/issues/651))
1025* Add dev mode warning if `hydrate` is true but `hydratable` was false ([#664](https://github.com/sveltejs/svelte/issues/664))
1026* Manipulate sourcemap to make missing loop values obvious ([#683](https://github.com/sveltejs/svelte/pull/683))
1027* Only add CSS scoping attributes where necessary ([#679](https://github.com/sveltejs/svelte/issues/679))
1028* Warn on unused CSS selectors ([#678](https://github.com/sveltejs/svelte/issues/678))
1029* Fix `<select>` binding in loop ([#685](https://github.com/sveltejs/svelte/issues/685))
1030* Prevent bindings from calling `oncreate` functions prematurely ([#694](https://github.com/sveltejs/svelte/pull/694))
1031* Simpler codegen ([#673](https://github.com/sveltejs/svelte/pull/673))
1032
1033## 1.23.4
1034
1035* Don't recreate if blocks incorrectly ([#669](https://github.com/sveltejs/svelte/pull/669))
1036
1037## 1.23.3
1038
1039* Pass parameters to `get_block` ([#667](https://github.com/sveltejs/svelte/issues/667))
1040
1041## 1.23.2
1042
1043* Fix if blocks being recreated on update ([#665](https://github.com/sveltejs/svelte/issues/665))
1044
1045## 1.23.1
1046
1047* Fix each-else blocks that are empty on initial render ([#662](https://github.com/sveltejs/svelte/issues/662))
1048
1049## 1.23.0
1050
1051* Hydration ([#649](https://github.com/sveltejs/svelte/pull/649))
1052* Correctly transform CSS selectors with pseudo-elements ([#658](https://github.com/sveltejs/svelte/issues/658))
1053
1054## 1.22.5
1055
1056* Fix nested component unmounting bug ([#643](https://github.com/sveltejs/svelte/issues/643))
1057
1058## 1.22.4
1059
1060* Include `ast` in `svelte.compile` return value ([#632](https://github.com/sveltejs/svelte/issues/632))
1061* Set initial value of `<select>` binding, if unspecified ([#639](https://github.com/sveltejs/svelte/issues/639))
1062* Mark indirect dependencies of `<select>` bindings (i.e. the dependencies of their `<option>` values) ([#639](https://github.com/sveltejs/svelte/issues/639))
1063
1064## 1.22.3
1065
1066* Fix nested component unmounting bug ([#625](https://github.com/sveltejs/svelte/issues/625))
1067* Allow components to have computed member expression bindings ([#624](https://github.com/sveltejs/svelte/issues/624))
1068* Handle empty `<style>` tags ([#634](https://github.com/sveltejs/svelte/issues/634))
1069* Warn on missing component ([#623](https://github.com/sveltejs/svelte/issues/623))
1070* Allow dynamic `type` attribute for unbound inputs ([#620](https://github.com/sveltejs/svelte/issues/620))
1071* Rename `addEventListener` and `removeEventListener` directives ([#621](https://github.com/sveltejs/svelte/issues/621))
1072
1073## 1.22.2
1074
1075* Escape template strings correctly in SSR output ([#616](https://github.com/sveltejs/svelte/issues/616))
1076* Prevent magic-string deprecation warning ([#617](https://github.com/sveltejs/svelte/pull/617))
1077
1078## 1.22.1
1079
1080* Sanitise event handler names ([#612](https://github.com/sveltejs/svelte/issues/612))
1081
1082## 1.22.0
1083
1084* 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))
1085* 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))
1086* Support binding to computed member expressions ([#602](https://github.com/sveltejs/svelte/issues/602))
1087* Coerce empty string in `number`/`range` inputs to `undefined`, not `0` ([#584](https://github.com/sveltejs/svelte/issues/584))
1088* Fix insert location of DOM elements in each/if/nested component edge cases ([#610](https://github.com/sveltejs/svelte/issues/610))
1089
1090## 1.21.0
1091
1092* Always use `helpers` if referenced, not just for call expressions ([#575](https://github.com/sveltejs/svelte/issues/575))
1093* Fix parsing of `<textarea>` children ([#599](https://github.com/sveltejs/svelte/pull/599))
1094* Treat `<textarea>` value attributes and children as equivalent, and fail validation if both are present ([#599](https://github.com/sveltejs/svelte/pull/599))
1095* Fix `<textarea>` SSR ([#599](https://github.com/sveltejs/svelte/pull/599))
1096* Apply CSS transition styles immediately if transition has delay ([#574](https://github.com/sveltejs/svelte/issues/574))
1097* Ensure `transitionManager` is treeshakeable ([#593](https://github.com/sveltejs/svelte/issues/593))
1098* Fix for environments where `node.style.animation` is undefined ([#587](https://github.com/sveltejs/svelte/issues/587))
1099* Fix order of operations when dealing with `<select>` elements ([#590](https://github.com/sveltejs/svelte/issues/590))
1100* Downgrade 'invalid callee' to a warning ([#579](https://github.com/sveltejs/svelte/issues/579))
1101* Convert to TypeScript ([#573](https://github.com/sveltejs/svelte/pull/573))
1102
1103## 1.20.2
1104
1105* Fix destruction of compound if-blocks with outros ([#572](https://github.com/sveltejs/svelte/pull/572))
1106
1107## 1.20.1
1108
1109* Fix insertion order of `if` blocks and their anchors ([#569](https://github.com/sveltejs/svelte/issues/569))
1110
1111## 1.20.0
1112
1113* Faster, better updates of keyed each blocks ([#373](https://github.com/sveltejs/svelte/issues/373), [#543](https://github.com/sveltejs/svelte/issues/543))
1114* Use element IDs to robustly track dynamically injected `<style>` tags ([#554](https://github.com/sveltejs/svelte/issues/554))
1115* Abort outros before corresponding intros ([#546](https://github.com/sveltejs/svelte/issues/546))
1116* Generate less code for `if` blocks with `else` blocks ([#540](https://github.com/sveltejs/svelte/issues/540))
1117* Ensure `{{yield}}` block content is injected into the right place ([#561](https://github.com/sveltejs/svelte/issues/561))
1118* Simpler, more readable codegen code ([#559](https://github.com/sveltejs/svelte/pull/559))
1119* Validate transition directives ([#564](https://github.com/sveltejs/svelte/issues/564))
1120* Apply delays to bidirectional transitions ([#562](https://github.com/sveltejs/svelte/issues/562))
1121* Handle all valid HTML entities ([#565](https://github.com/sveltejs/svelte/pull/565))
1122* Fix outros on compound `if` blocks ([#565](https://github.com/sveltejs/svelte/pull/565))
1123* Validation for `<:Window>` tags ([#565](https://github.com/sveltejs/svelte/pull/565))
1124* Increased test coverage ([#565](https://github.com/sveltejs/svelte/pull/565))
1125
1126## 1.19.1
1127
1128* Export `generateKeyframes`, so that CSS transitions work
1129
1130## 1.19.0
1131
1132* Experimental support for transitions ([#7](https://github.com/sveltejs/svelte/issues/7))
1133* Use `querySelector(':checked')` instead of `selectedOptions` ([#539](https://github.com/sveltejs/svelte/issues/539))
1134* Stringify helpers before bundling them, to avoid renaming errors ([#538](https://github.com/sveltejs/svelte/issues/538))
1135
1136## 1.18.2
1137
1138* Parenthesize if-block conditions ([#532](https://github.com/sveltejs/svelte/issues/532))
1139* Fix parsing of parenthesized expressions ([#534](https://github.com/sveltejs/svelte/issues/534))
1140* Fix error on `bind:checked` that doesn't belong to a checkbox input ([#529](https://github.com/sveltejs/svelte/pull/529))
1141
1142## 1.18.1
1143
1144* Allow `destroy()` in event handlers ([#523](https://github.com/sveltejs/svelte/issues/523))
1145* Fix bug with `{{yield}}` blocks following elements ([#524](https://github.com/sveltejs/svelte/issues/524))
1146
1147## 1.18.0
1148
1149* Visit `<select>` attributes after children, to ensure options are in the right state ([#521](https://github.com/sveltejs/svelte/pull/521))
1150* Use sibling elements as anchors rather than creating comment nodes wherever possible ([#3](https://github.com/sveltejs/svelte/issues/3))
1151
1152## 1.17.2
1153
1154* Replace bad characters when creating variable names based on element names ([#516](https://github.com/sveltejs/svelte/issues/516))
1155
1156## 1.17.1
1157
1158* Fixes for static each-else and yield blocks ([#509](https://github.com/sveltejs/svelte/issues/509)), ([#514](https://github.com/sveltejs/svelte/issues/514))
1159* Code generation tweaks ([#504](https://github.com/sveltejs/svelte/issues/504)), ([#507](https://github.com/sveltejs/svelte/issues/507))
1160
1161## 1.17.0
1162
1163* Add `currentTime`, `duration` and `paused` bindings for media elements ([#406](https://github.com/sveltejs/svelte/issues/406))
1164* Don't treat helpers as dependencies ([#492](https://github.com/sveltejs/svelte/issues/492))
1165* Allow `<:Window>` event handlers to access component state ([#497](https://github.com/sveltejs/svelte/pull/497))
1166* Allow two-way binding to properties named 'component' ([#495](https://github.com/sveltejs/svelte/issues/495))
1167* Group checkbox bindings correctly, to avoid erroneously unchecking siblings ([#498](https://github.com/sveltejs/svelte/issues/498))
1168* Validate two-way bindings ([#494](https://github.com/sveltejs/svelte/pull/494))
1169* Allow dynamic each-block to have static else-block ([#501](https://github.com/sveltejs/svelte/pull/501))
1170* Initialise `<select>` value correctly ([#502](https://github.com/sveltejs/svelte/pull/502))
1171
1172## 1.16.0
1173
1174* 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))
1175* Prevent binding blowback on initial render ([#488](https://github.com/sveltejs/svelte/pull/488))
1176
1177## 1.15.1
1178
1179* Clone data before merging it with state ([#479](https://github.com/sveltejs/svelte/issues/479))
1180* Apply binding event handlers before user event handlers ([#486](https://github.com/sveltejs/svelte/issues/486))
1181
1182## 1.15.0
1183
1184* Dev mode — downgrade 'missing data' to a warning, and ignore whitelisted globals ([#475](https://github.com/sveltejs/svelte/issues/475))
1185* Fix `<select>` value binding when options are updated late ([#476](https://github.com/sveltejs/svelte/issues/476))
1186* Throw at compile time if event handler references invalid callee ([#473](https://github.com/sveltejs/svelte/pull/473))
1187* Check for helper function purity ([#473](https://github.com/sveltejs/svelte/pull/473))
1188* Validate `namespace` option ([#473](https://github.com/sveltejs/svelte/pull/473))
1189
1190## 1.14.1
1191
1192* Replace bad characters when creating variable names based on attributes ([#470](https://github.com/sveltejs/svelte/issues/470))
1193
1194## 1.14.0
1195
1196* Better guard against naming conflicts ([#465](https://github.com/sveltejs/svelte/issues/465))
1197* Better error if getters and setters are used with `methods` ([#425](https://github.com/sveltejs/svelte/issues/425))
1198* Don't create whitespace nodes inside elements that can't use them ([#189](https://github.com/sveltejs/svelte/issues/189))
1199* Collapse consecutive `if` statements with the same condition ([#450](https://github.com/sveltejs/svelte/issues/450))
1200* Window `scroll` bindings are bidirectional ([#404](https://github.com/sveltejs/svelte/issues/404))
1201* Add `bind:online` to window ([#404](https://github.com/sveltejs/svelte/issues/404))
1202* In dev mode, throw if read-only properties are set ([#404](https://github.com/sveltejs/svelte/issues/404))
1203* Prevent conflicts with component name ([#464](https://github.com/sveltejs/svelte/pull/464))
1204* Ensure event handler names are deconflicted ([#466](https://github.com/sveltejs/svelte/issues/466))
1205
1206## 1.13.7
1207
1208* Fix observers — `defer: true` now triggers callback after DOM is updated ([#441](https://github.com/sveltejs/svelte/issues/441))
1209* Handle empty `computed` property ([#452](https://github.com/sveltejs/svelte/issues/452))
1210* Correctly bind one-way `<select>` value attributes with objects ([#423](https://github.com/sveltejs/svelte/issues/423))
1211* Hoist event handlers inside each blocks, where possible ([#456](https://github.com/sveltejs/svelte/pull/456))
1212* Don't bind event handler callbacks ([#433](https://github.com/sveltejs/svelte/issues/433))
1213* Internal refactoring and neater code generation ([#453](https://github.com/sveltejs/svelte/pull/453))
1214
1215## 1.13.6
1216
1217* Use `assign` helper instead of `Object.assign` for better performance and legacy compatibility ([#431](https://github.com/sveltejs/svelte/issues/431))
1218* 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))
1219
1220## 1.13.5
1221
1222* Read `range` and `number` input values as numbers ([#436](https://github.com/sveltejs/svelte/issues/436))
1223* Better error for `bind:value='{{foo}}'` ([#437](https://github.com/sveltejs/svelte/issues/437))
1224
1225## 1.13.4
1226
1227* Prevent unclosed `<script>` tag causing infinite loop ([#435](https://github.com/sveltejs/svelte/pull/435))
1228
1229## 1.13.3
1230
1231* Correctly handle `{{true}}`, `{{false}}` and `{{null}}` ([#424](https://github.com/sveltejs/svelte/issues/424))
1232* Update `<select>` value attributes correctly ([#423](https://github.com/sveltejs/svelte/issues/423))
1233* Bind custom event handler callbacks ([#428](https://github.com/sveltejs/svelte/issues/428))
1234* Disallow `import root` ([#430](https://github.com/sveltejs/svelte/pull/430))
1235* Prevent component bindings mutating the wrong object ([#432](https://github.com/sveltejs/svelte/pull/432))
1236
1237## 1.13.2
1238
1239* Fix deep component bindings ([#420](https://github.com/sveltejs/svelte/issues/420))
1240* Include `css` property in compiler output ([#409](https://github.com/sveltejs/svelte/issues/409))
1241* Treat functions as mutable objects when recomputing ([#413](https://github.com/sveltejs/svelte/issues/413)
1242* Include magic-string in bundle ([#410](https://github.com/sveltejs/svelte/issues/410))
1243* Disable unneeded Bublé transformations for slimmer output ([#411](https://github.com/sveltejs/svelte/pull/411))
1244
1245## 1.13.1
1246
1247* Prevent infinite loops with pathological component bindings ([#398](https://github.com/sveltejs/svelte/issues/398))
1248* More robust deconflicting ([#401](https://github.com/sveltejs/svelte/pull/401))
1249
1250## 1.13.0
1251
1252* Add `<:Window>` meta tag with event listeners, and a handful of bindings ([#371](https://github.com/sveltejs/svelte/issues/371))
1253* Don't uncheck radios incorrectly ([#399](https://github.com/sveltejs/svelte/issues/399))
1254
1255## 1.12.1
1256
1257* Deconflict non-helper functions (`addCss` etc) ([#388](https://github.com/sveltejs/svelte/issues/388))
1258* Allow reserved words in tags, e.g. `{{class}}` ([#383](https://github.com/sveltejs/svelte/issues/383))
1259
1260## 1.12.0
1261
1262* Shorthand attributes — `<Widget :foo/>` is equivalent to `<Widget foo='{{foo}}'/>` ([#384](https://github.com/sveltejs/svelte/pull/384))
1263* Support `bind:group` for radio and checkbox inputs ([#311](https://github.com/sveltejs/svelte/issues/311), [#312](https://github.com/sveltejs/svelte/issues/312))
1264* Better sourcemap support for two-way bindings
1265
1266## 1.11.4
1267
1268* Dev mode warning for bad `component.observe` arguments ([#369](https://github.com/sveltejs/svelte/issues/369))
1269* Translate `component.on('teardown', ...)` to `component.on('destroy', ...)` and add dev warning ([#365](https://github.com/sveltejs/svelte/issues/365))
1270* Use shared prototype to save bytes ([#378](https://github.com/sveltejs/svelte/pull/378))
1271
1272## 1.11.3
1273
1274* Undo CSS behaviour change in 1.11.2 ([#372](https://github.com/sveltejs/svelte/issues/372))
1275* Pin version of css-tree ([#370](https://github.com/sveltejs/svelte/pull/370))
1276
1277## 1.11.2
1278
1279* Add component CSS to each document a component is rendered to ([#331](https://github.com/sveltejs/svelte/issues/331))
1280
1281## 1.11.1
1282
1283* Fix two-way binding for components inside `each` blocks ([#356](https://github.com/sveltejs/svelte/issues/356))
1284
1285## 1.11.0
1286
1287* Add `format: 'eval'` and `svelte.create`, to create components directly from source code ([#345](https://github.com/sveltejs/svelte/issues/345))
1288* Node 4 compatibility ([#109](https://github.com/sveltejs/svelte/issues/109))
1289
1290## 1.10.3
1291
1292* Prevent `'</script>'` string occurence breaking pages ([#349](https://github.com/sveltejs/svelte/pull/349))
1293* Allow reference to whitelisted globals without properties ([#333](https://github.com/sveltejs/svelte/pull/333))
1294* Don't remove `&nbsp;` incorrectly ([#348](https://github.com/sveltejs/svelte/issues/348))
1295* `let` -> `var` in `addCss` block ([#351](https://github.com/sveltejs/svelte/pull/351))
1296
1297## 1.10.2
1298
1299* Accept any case for doctype declarations ([#336](https://github.com/sveltejs/svelte/issues/336))
1300* Allow non-top-level `<script>` and `<style>` tags to pass through without processing ([#335](https://github.com/sveltejs/svelte/issues/335))
1301
1302## 1.10.1
1303
1304* typecheck argument in _set when in dev mode ([#342](https://github.com/sveltejs/svelte/issues/342))
1305* Prevent duplicate helpers in non-shared mode ([#337](https://github.com/sveltejs/svelte/issues/337))
1306
1307## 1.10.0
1308
1309* Component self-references with `<:Self/>` ([#51](https://github.com/sveltejs/svelte/issues/51))
1310* Two-way binding with `<select multiple>` ([#313](https://github.com/sveltejs/svelte/issues/313))
1311
1312## 1.9.1
1313
1314* Better error for malformed event handlers ([#220](https://github.com/sveltejs/svelte/issues/220))
1315* Allow function expressions in tags ([#269](https://github.com/sveltejs/svelte/issues/269))
1316
1317## 1.9.0
1318
1319* 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))
1320* Better error if parser encounters an unmatched closing tag ([#321](https://github.com/sveltejs/svelte/issues/321))
1321
1322## 1.8.1
1323
1324* Allow implicitly closed elements ([#318](https://github.com/sveltejs/svelte/pull/318))
1325* More informative error messages for unclosed elements/blocks ([#258](https://github.com/sveltejs/svelte/issues/258))
1326* Deprecate `onrender` and `onteardown` in favour of `oncreate` and `ondestroy` ([#40](https://github.com/sveltejs/svelte/issues/40))
1327
1328## 1.8.0
1329
1330* Prevent duplicate imports ([#308](https://github.com/sveltejs/svelte/issues/308))
1331* Use `input` events (not `change`) for all input elements other than `checkbox` and `radio`, and textareas ([#309](https://github.com/sveltejs/svelte/pull/309))
1332* Encapsulate keyframe declarations ([#245](https://github.com/sveltejs/svelte/issues/245))
1333
1334## 1.7.1
1335
1336* Deconflict imports and shared helpers ([#222](https://github.com/sveltejs/svelte/issues/222))
1337* Deconflict each-block contexts and reserved words ([#222](https://github.com/sveltejs/svelte/issues/222))
1338* Allow shorthand properties in expressions ([#296](https://github.com/sveltejs/svelte/issues/296))
1339
1340## 1.7.0
1341
1342* Include CSS AST in `svelte.parse` output ([#302](https://github.com/sveltejs/svelte/pull/302))
1343* Better handling of CSS parse errors ([#302](https://github.com/sveltejs/svelte/pull/302))
1344* Initialise `<select>` elements with two-way binding correctly ([#301](https://github.com/sveltejs/svelte/issues/301))
1345* Allow local context in component event handlers inside `each` blocks ([#290](https://github.com/sveltejs/svelte/issues/290))
1346* Fix two-way binding for components inside `each` blocks ([#290](https://github.com/sveltejs/svelte/issues/290))
1347
1348## 1.6.11
1349
1350* Initialise dynamic `<option>` value correctly ([#291](https://github.com/sveltejs/svelte/issues/291))
1351
1352## 1.6.10
1353
1354* 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))
1355* Add `outputFilename` option to populate `file` and `sources` sourcemap properties correctly ([#295](https://github.com/sveltejs/svelte/pull/295))
1356
1357## 1.6.9
1358
1359* Don't trigger bindings for torn-down components ([#277](https://github.com/sveltejs/svelte/issues/277))
1360* SSR: Handle two-way bindings ([#275](https://github.com/sveltejs/svelte/issues/275))
1361* Improve performance by checking data has changed before updates ([#279](https://github.com/sveltejs/svelte/pull/279))
1362* Parse CSS with css-tree to prevent transformation errors with unconventional styles ([#288](https://github.com/sveltejs/svelte/issues/288))
1363
1364## 1.6.8
1365
1366* Always trigger `onrender`, including when change initiator is a nested component ([#263](https://github.com/sveltejs/svelte/issues/263))
1367* Handle default function parameters in computations ([#274](https://github.com/sveltejs/svelte/issues/274))
1368
1369## 1.6.7
1370
1371* SSR: Fix apostrophes ([#267](https://github.com/sveltejs/svelte/issues/267))
1372* Add `xmlns` attributes to SVGs ([#262](https://github.com/sveltejs/svelte/pull/262))
1373
1374## 1.6.6
1375
1376* Omit text from comment anchors ([#247](https://github.com/sveltejs/svelte/issues/247))
1377* Handle `xlink` attributes ([#264](https://github.com/sveltejs/svelte/issues/264))
1378
1379## 1.6.5
1380
1381* Handle `<!doctype>` declarations ([#255](https://github.com/sveltejs/svelte/pull/255))
1382
1383## 1.6.4
1384
1385* Fix updates of yields inside each blocks ([20e1b05](https://github.com/sveltejs/svelte/commit/20e1b05c45dc9fcddfe2e7c5c9fc3109f0d45fa9))
1386* SSR: Handle attributes with values that begin with a number ([#248](https://github.com/sveltejs/svelte/issues/248))
1387* Handle multiline comments in CSS ([#252](https://github.com/sveltejs/svelte/issues/252))
1388
1389## 1.6.3
1390
1391* 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))
1392* Set attributes on `<svg>` elements correctly ([#233](https://github.com/sveltejs/svelte/issues/233))
1393* Add `svelte.VERSION` property to compiler
1394
1395## 1.6.2
1396
1397* Use helpers for `addEventListener`, `removeEventListener`, `setAttribute` ([#227](https://github.com/sveltejs/svelte/pull/227))
1398* Escape `sharedPath` ([#229](https://github.com/sveltejs/svelte/pull/229))
1399* Handle attributes with values that begin with a number ([#234](https://github.com/sveltejs/svelte/issues/234))
1400* Update dependencies
1401
1402## 1.6.1
1403
1404* SSR: Handle component directives at arbitrary positions ([#221](https://github.com/sveltejs/svelte/issues/221))
1405* Provide useful feedback on invalid void closing tag ([#224](https://github.com/sveltejs/svelte/issues/224))
1406
1407## 1.6.0
1408
1409* Replace `standalone: false` with `shared: true`, or `shared: 'custom/path/to/shared.js'` ([#218](https://github.com/sveltejs/svelte/issues/218))
1410* Include `shared.js` in package
1411
1412## 1.5.0
1413
1414* Implement `standalone: false` ([#9](https://github.com/sveltejs/svelte/issues/9))
1415* SSR: Handle component directives ([216](https://github.com/sveltejs/svelte/issues/216))
1416
1417## 1.4.0
1418
1419* Keyed `each` blocks ([#81](https://github.com/sveltejs/svelte/issues/81))
1420
1421## 1.3.1
1422
1423* Remove file extensions from AMD dependencies ([#144](https://github.com/sveltejs/svelte/issues/144))
1424* Throw if `options.name` is illegal ([#102](https://github.com/sveltejs/svelte/issues/102))
1425
1426## 1.3.0
1427
1428* SSR compiler: Support `format` option ([#196](https://github.com/sveltejs/svelte/issues/196))
1429* SSR compiler: Don't self-close 'normal' elements ([#200](https://github.com/sveltejs/svelte/issues/200))
1430* Remove leading spaces from scoped CSS ([#140](https://github.com/sveltejs/svelte/issues/140))
1431* Internal refactoring
1432
1433## 1.2.5
1434
1435* Allow whitelisted globals in templates ([#185](https://github.com/sveltejs/svelte/issues/185))
1436* Intercept parse errors with `options.onerror`
1437
1438## 1.2.4
1439
1440* SSR compiler: Implement `{{{triples}}}` ([#197](https://github.com/sveltejs/svelte/issues/197))
1441* SSR compiler: Escape HTML in tags ([#197](https://github.com/sveltejs/svelte/issues/197))
1442
1443## 1.2.3
1444
1445* Add support for `namespace` declaration for SVG (etc) components ([#147](https://github.com/sveltejs/svelte/issues/147))
1446* Throw error if methods or lifecycle hooks are arrow functions that use `this` or `arguments` ([#179](https://github.com/sveltejs/svelte/issues/179))
1447* Use `setAttribute()` for `list` attributes, to preserve link to `<datalist>` ([#178](https://github.com/sveltejs/svelte/issues/178))
1448* Throw error if default export is not an object literal ([#190](https://github.com/sveltejs/svelte/pull/190))
1449* Internal refactoring
1450
1451## 1.2.2
1452
1453* Omit directives in server-side rendering ([#163](https://github.com/sveltejs/svelte/issues/167))
1454* Handle comments in SSR ([#165](https://github.com/sveltejs/svelte/issues/165))
1455* Support calling methods of `event`/`this` in event handlers ([#162](https://github.com/sveltejs/svelte/issues/162))
1456* Remove `mount` from public API ([#150](https://github.com/sveltejs/svelte/issues/150))
1457
1458## 1.2.1
1459
1460* Server-side rendering is available as a compiler option (`generate: 'ssr'`) ([#159](https://github.com/sveltejs/svelte/pull/159))
1461* Allow call expressions where function is not in `helpers` ([#163](https://github.com/sveltejs/svelte/issues/163))
1462
1463## 1.2.0
1464
1465* Server-side rendering of HTML ([#148](https://github.com/sveltejs/svelte/pull/148)) and CSS ([#154](https://github.com/sveltejs/svelte/pull/154))
1466
1467## 1.1.3
1468
1469* Handle `xmlns` attributes correctly ([#142](https://github.com/sveltejs/svelte/issues/142))
1470* Error on duplicate `<style>`/`<script>` tags rather than failing silently ([#142](https://github.com/sveltejs/svelte/issues/142))
1471* Don't create whitespace text nodes inside SVG elements ([#142](https://github.com/sveltejs/svelte/issues/142))
1472* Require void elements to be lowercase, to eliminate confusion with components ([#137](https://github.com/sveltejs/svelte/issues/137))
1473
1474## 1.1.2
1475
1476* Deconflict variable names ([#88](https://github.com/sveltejs/svelte/issues/88), [#126](https://github.com/sveltejs/svelte/issues/126))
1477
1478## 1.1.1
1479
1480* Support multiple SVG elements in a component ([#130](https://github.com/sveltejs/svelte/issues/130))
1481
1482## 1.1.0
1483
1484* Separate fragment creation from `mount` ([#91](https://github.com/sveltejs/svelte/pull/91))
1485* Trigger `onrender` hook at correct time for nested components ([#103](https://github.com/sveltejs/svelte/pull/103))
1486* Fix keypath dynamic attributes in components ([#46](https://github.com/sveltejs/svelte/issues/46))
1487* Implement `{{yield}}` ([#112](https://github.com/sveltejs/svelte/pull/112))
1488* Optimise teardown ([#99](https://github.com/sveltejs/svelte/issues/99))
1489* Require computed properties to have at least one dependency ([#115](https://github.com/sveltejs/svelte/pull/115))
1490* Support `{{#each ...}}...{{else}}...{{/each}}` ([#90](https://github.com/sveltejs/svelte/issues/90))
1491* Triple mustaches ([#35](https://github.com/sveltejs/svelte/issues/35))
1492
1493## 1.0.7
1494
1495* Correctly escape HTML entities ([#85](https://github.com/sveltejs/svelte/issues/85))
1496
1497## 1.0.6
1498
1499* Generate useful sourcemaps ([#60](https://github.com/sveltejs/svelte/issues/60))
1500
1501## 1.0.5
1502
1503* Ensure compiler only generates ES5 code ([#75](https://github.com/sveltejs/svelte/issues/75))
1504* `get()` without arguments returns entire state object ([#73](https://github.com/sveltejs/svelte/issues/73))
1505
1506## 1.0.4
1507
1508* Handle empty attributes in elements and components ([#63](https://github.com/sveltejs/svelte/issues/63))
1509* Detach top-level text nodes inside departing each blocks ([#62](https://github.com/sveltejs/svelte/issues/62))
1510
1511## 1.0.3
1512
1513* Better generated code for `if` blocks, especially with `else`/`elseif` chains ([#28](https://github.com/sveltejs/svelte/pull/28))
1514* Trim unnecessary whitespace from `else`/`elseif` blocks ([#49](https://github.com/sveltejs/svelte/pull/49))
1515* Handle trailing comments in script tags ([#64](https://github.com/sveltejs/svelte/issues/64))
1516
1517## 1.0.2
1518
1519Set `style.cssText` rather than `style` ([#44](https://github.com/sveltejs/svelte/issues/44))
1520
1521## 1.0.1
1522
1523* Preserve SVG namespace inside each blocks
1524* Always use `setAttribute` with SVG elements
1525
1526## 1.0.0
1527
1528* Generate AMD, CJS, IIFE and UMD builds
1529* Correctly insert text nodes before anchors ([#31](https://github.com/sveltejs/svelte/pull/31))
1530
1531## 0.3.0
1532
1533* Fix bug where departing element would unset `ref` incorrectly ([#24](https://github.com/sveltejs/svelte/issues/24))
1534* Basic template validation ([#6](https://github.com/sveltejs/svelte/issues/6))
1535* Fire `onrender` hooks once component is in DOM ([#18](https://github.com/sveltejs/svelte/issues/18))
1536* Only detach nodes when necessary to do so ([#26](https://github.com/sveltejs/svelte/issues/26))
1537
1538## 0.2.2
1539
1540* On second thoughts, don't transpile build. Was only really for Uglify's benefit, which is daft
1541
1542## 0.2.1
1543
1544* Transpile build
1545
1546## 0.2.0
1547
1548* Only generate UMD build, for now
1549* Include dependencies in the build, treat as `devDependencies`
1550* Faster initial render
1551* Parent data overrides child defaults
1552* Remove top-level text nodes on teardown
1553* Handle `readUntil` errors in parser
1554* Basic `<select>` binding
1555* Handle missing data
1556* Prevent infinite set/observe loops
1557* Add `bind:foo` shorthand
1558* `else` and `elseif` blocks
1559* Hoist imports
1560
1561## 0.1.1
1562
1563* Support unquoted attributes
1564* Handle entities in attributes
1565* Inline nested components
1566* `fire` and `on` methods
1567
1568## 0.1.0
1569
1570* Breaking change – Svelte compiler now generates constructor functions rather than factories ([#2](https://github.com/sveltejs/svelte/issues/2))
1571* SVG support
1572
1573## 0.0.2
1574
1575* First release capable of building TodoMVC
1576
1577## 0.0.1
1578
1579* Just squatting on the package name