mirror of https://github.com/sveltejs/svelte
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 KiB
77 KiB
Svelte changelog
3.5.3
- Don't double-destroy keyed each blocks with outros (#3055)
3.5.2
- Prevent duplicated outros causing errors (#3001)
- Fix automatic name generation (#2843)
- Fix .d.ts stubs (#3009)
- Don't strip non-breaking spaces (#3014)
- Fix
requestAnimationFramecontext (#2933) - Allow space before attribute value (#3026)
- Remove null/undefined attributes (#1434)
- Fix whitespace in static markup (#3030)
3.5.1
- Accommodate webpack idiosyncracies
3.5.0
- Update package folder structure (#2887)
- Support
oncemodifier on component events (#2654) - Allow empty
<title>tags (#2980) - Render textarea binding values inside element (#2975)
- Fix delayed animation glitch (#2871)
- Solve diamond dependencies problem with stores (#2660)
- Fix missing outros inside each blocks (#2689)
- Support animations without transitions (#2908)
- Add missing transition events (#2912)
3.4.4
- Publish type declaration files (#2874)
- Don't trigger updates for unreferenced values (#2865)
- Omit readonly bindings from SSR output (#2339)
- Prevent outdated animation CSS (#2871)
- Repair dynamic
{@html ...}in head (#2880) - Don't create unknown prop warnings for internal props, or if component has
$$props(#2881)
3.4.3
- Add type declaration files for everything (#2842)
- Prevent
svelte/storebeing bundled (#2786) - Warn on unknown props in dev mode (#2840)
- Treat
requestAnimationFrameas a no-op on the server (#2856) - Add
rawproperty to AST'sTextnodes (#2714) - Add
<details bind:open>(#2854)
3.4.2
- Use empty string for empty data attributes (#2804)
- Support
customElement: truewith no<svelte:options>(#2821) - Add docstrings to
svelte/store(#2795)
3.4.1
- Handle non-falsy non-function return values from derivers (#2780)
- Allow
springto work server-side (#2773)
3.4.0
- Allow custom element to be defined without a
tag(#2417) - Fix parsing of quote marks inside attribute values (#2715)
- Convert
svelte/storeto TypeScript (#2733) - Allow
debugtags to include hoisted values (#2764) - Parse error if attribute name is missing
=(#1513) - Allow reactive declarations to depend on mutated
constvalues (#2728)
3.3.0
- Allow multiple event listeners on a single node (#2688)
- Allow derivers to return a cleanup function (#2553)
- Support namespaced components (
<Foo.Bar/>) (#2743)
3.2.2
- Add
windowanddocumentto expected globals (#2722) - Prevent hoisting of functions that depend on reactive state (#2703)
- Generate correct code when slot has no changes (#2697)
- Prevent
Object.prototype-related bugs (#2696)
3.2.1
- Use same comparison logic for
derivedas for other stores (#2644) - Invalidate dependencies of reactive declarations (#2444)
- Fix instrumentation of auto-subscription self-assignments (#2681)
- Warn on non-top-level or module-context statements labeled with
$:(#2176)
3.2.0
- Improve
springanimations, and addhard/softoptions (#2627) - Expose
parseandwalkfunctions (#2661, #2534) - Support array/object rest in
eachblock destructuring patterns (#2647, #2658) - Use
setAttributeto changeformproperty on form elements (#1742) - Fix a11y warning when
<figcaption>is non-direct descendant of<figure>(#2582) - Squelch erroneous 'empty block' warnings (#1716)
- Fix IE9/10 error with
insertBefore(#2573) - Prevent
$$scopefrom being spread onto an element (#2520) - Resubscribe to stores that are assigned to in
<script>(#2435) - Allow reactive declarations to depend on
constvariables (#2285) - Trigger store changes on UpdateExpression (#2625)
- Squelch missing prop warning if variable is initialised (#2635)
- Add
alert,confirmandpromptto known globals (#2648)
3.1.0
- Allow store subscribe functions to return an object with an
unsubscribemethod, providing native RxJS support (#2549)
3.0.1
- Prevent text input cursor jumping in Safari (#2506)
- Allow assignments to member expressions (#2510)
- Prevent mutually dependent functions causing an infinite during hoisting (#2542)
- Reuse scheduler promise instead of creating new one each time (#2555)
- Various site/docs fixes
3.0.0
- Everything
2.15.4
- IE
classListfix (#1868)
2.15.3
- Don't mutate AST
2.15.2
- Expose
stats.props(#1837)
2.15.1
- Don't throw missing store error when store is declared in component (#1828)
2.15.0
- Event modifiers (#1088)
- Wheel and touch events are passive by default (#1088)
- Add
<svelte:document>tag (#1484) - Include binding values in server-rendered HTML (#1205)
- Remove attributes when value is undefined/null (#1434)
- Initialise window scroll from component data (#938)
- Remove references to unused properties in generated code (#1187)
- Add TypeScript definitions for store (#1207)
- Better error for missing store (#1807)
2.14.3
- Account for directive dependencies (#1793)
- Detach each block iterations in each blocks with no update method (#1795)
2.14.2
- Fix issue with nested
{#if}blocks (#1780)
2.14.1
- Fix block insertion order regression (#1778)
- Fix blocks inside
<svelte:head>(#1774) - Better attribute parsing (#1772)
- Fix parse errors inside directives (#1788)
2.14.0
- Refactor internals (#1678)
- Deprecate
onerroroption (#1745) - Handle edge cases where
destroyis called beforemount(#1653) - Make
scrollbinding more efficient (#1579) - Make 'readonly property' store error more informative (#1761)
2.13.5
- Fix missing dependencies in shorthand class directives (#1739)
2.13.4
- Support dynamic
import()in template expressions
2.13.3
- Fix bug with keyed each blocks and nested components (#1706)
2.13.2
- Coalesce simultaneous store/component updates (#1520)
- Fix nested transitions preventing each block item removal (#1617)
- Add
classdirective shorthand and encapsulate styles (#1695) - Prevent erroneous updates of bound inputs (#1699)
2.13.1
- Coerce second argument to
toggleClass(#1685)
2.13.0
2.12.1
- Allow actions to take any expression (#1676)
- Run transitions in component context (#1675)
- Correctly set select value on mount (#1666)
- Support
{@debug}in SSR (#1659) - Don't treat
as empty whitespace (#1658) - Fix outros for if blocks with no else (#1688)
- Set
style.cssTextin spread attributes (#1684)
2.12.0
- Initialise actions on mount rather than hydrate (#1653)
- Allow non-existent components to be destroyed (#1677)
- Pass AMD ID from CLI correctly (#1672)
- Minor AST tweaks (#1673, #1674)
- Reduce code duplication in component initialisation (#1670)
2.11.0
- Add
--sharedCLI option (#1649) - Run first
onstatebefore fragment is rendered (#1522) - Exclude current computed prop from state object (#1544)
2.10.1
- Add sourcemaps to
{@debug}tags (#1647)
2.10.0
- Add a
{@debug}tag, for inspecting values in templates in dev mode (#1635) - Fix dimension bindings in iOS (#1642)
2.9.11
- Pass props to custom elements rather than setting attributes, where appropriate (#875)
- Handle whitespace in lists consistently between SSR and DOM renderers (#1637)
- Improve error for invalid
refnames (#1613)
2.9.10
- Handle
nullconsistently in tags (#1598) - Support object rest in computed properties (#1540)
- Always update dynamic components when expression changes (#1621)
- Encapsulate local styles inside global styles (#1618)
2.9.9
- Fix attribute name regex (#1623)
2.9.8
- Sanitize spread attributes in SSR — fixes vulnerability CVE-2018-6341 (#1623)
2.9.7
- Allow
<input type=file bind:files>(#1608) - Ensure child window exists before removing listener in
addResizeHandler(#1600) - Handle transitions in
elseblock (#1589)
2.9.6
- Provide more useful error if SSR component attempts to render non-SSR component (#1605)
2.9.5
- Null out refs to dynamic components (#1596)
2.9.4
2.9.3
- Fix bug when an each block contains transitions but its else branch does not (#1559)
- If an event handler throws an exception, don't block all future calls to that handler (#1573)
2.9.2
- Fix conflict when using multiple if-else blocks, some of which use outros and some of which do not (#1580)
- Fix some cases where
.innerHTMLwas being used to create child elements when it shouldn't (#1581)
2.9.1
- Use
template.contentinstead oftemplatewhere appropriate (#1571)
2.9.0
- Play outro transitions on
<svelte:component>ifnestedTransitionsis true (#1568) - Allow illegal identifiers to be component prop names, for e.g. spreading
data-fooprops (#887) - Abort transition when node is detached (#1561)
- Only include
transitionManagerwhen necessary (#1514)
2.8.1
- Fix prefixed animation name replacement (#1556)
2.8.0
- Correctly set store on nested components (to parent store, not root store) (#1538)
2.7.2
- Prevent unnecessary remounts (#1527)
- Allow
refs.*as callee (#1526) - Handle empty lists when outroing (#1532)
2.7.1
- Fix spread props with multiple dependencies (#1515)
2.7.0
- Add
__svelte_metaobject to elements in dev mode, containing source info (#1499) - Fix
bind:onlinein dev mode (#1502) - Update v1 warnings/errors (#1508)
- Transform prefixed keyframes (#1504)
2.6.6
- Fix nested transition bug (#1497)
2.6.5
- Handle cases where only some
ifblock branches have outros (#1492)
2.6.4
2.6.3
- Nested transitions respect
skipIntroByDefault(#1460) - Always create outro for top-level block (#1470)
2.6.2
- Fix spread+bindings on dynamic components (#1433)
- Abort in-progress animations, if a new one starts (#1458)
- Allow animations to be parameterised (#1462)
2.6.1
- Absolutely position outroing animated nodes (#1457)
2.6.0
- Add
animatedirective (#1454) - Add
skipIntroByDefaultcompiler option andintro: trueinit option (#1448) - Add
nestedTransitionscompiler option (#1451) - Component outros, if
nestedTransitionsis true (#1211) - Allow transition functions to return a function, for inter-transition coordination (#1453)
- Pass
1 - tas second argument to transition functions (#1452)
2.5.1
- Add new ARIA attributes (#1436)
- Add
Promiseto whitelisted globals (#1441) - Allow spaces around reserved keyword attributes (#1445)
2.5.0
- Support transitions in
awaitblocks (#956) - Abort outros if block is recreated (#1425)
- Wait until transitions have completed before removing styles (#648)
- Support event shorthand on dynamic components (#1427)
- Various codegen improvements (#1419, #1421, #1422, #1424)
- Correctly handle
awaitblocks with no dynamic content (#1417) - Allow spread props on elements with static attribute tests (#1429)
2.4.4
2.4.3
refdirectives prevent HTMLified content (#1407)- Store computed properties update components immediately upon declaration (#1327)
2.4.2
- Evaluate
eachkey in child scope (#1397) - Prevent false negatives and positives when detecting cyclical computed store properties (#1399)
- Only update dynamic component props (#1394)
2.4.1
- Fix DOM event context (#1390)
2.4.0
- Integrate CLI (#1360)
- Allow arbitrary destructuring for each block items, with binding (#1385)
- Each block keys can use arbitrary expressions (#703)
bind:offsetWidth,bind:offsetHeight,bind:clientWidthandbind:clientHeight(#984)- Leaner generated code for
eachblocks (#1287)
2.3.0
- Allow computed properties to have entire state object as dependency (#1303)
- Fix
statswhenoptions.generateisfalse(#1368) - Assign custom methods to custom elements (#1369)
- Fix
thisvalue in custom event handlers (#1297) - Re-evaluate
eachvalues lazily (#1286) - Preserve outer context in
awaitblocks (#1251)
2.2.0
- Internal refactoring (#1367)
2.1.1
- Report initial
changedbased on state, not expected props (#1356) - Set state to empty object, not null, on destroy (#1354)
- Prevent stale state in component event handlers (#1353)
2.1.0
2.0.0
See the blog post for information on how to upgrade your apps
- New template syntax (#1318)
- Emit ES2015 code, not ES5 (#1348)
- Add
onstateandonupdatehooks, removecomponent.observemethod (#1197) - Use destructuring syntax for computed properties (#1069
- Change signature of
svelte.compile(#1298) - Remove
validateandStylesheetfrom public API (#1348) - Don't typecast numeric attributes (#657)
- Always compile with
Storesupport, and cascading disabled (#1348) - Remove unused
hashproperty from AST (#1348) - Rename
locproperty tostartin warnings and errors (#1348)
1.64.1
- Fix computed properties in SSR renderer (#1349)
1.64.0
- Deprecate passing a string argument to
component.get(#1347)
1.63.1
- Allow
observemethod to be overwritten
1.63.0
- Add
onstateandonupdatelifecycle hooks and deprecatecomponent.observe(#1197) - Add
onandfiretoStore, deprecateonchangeandobserve(#1344) - Require computed properties to have destructured argument in v2 mode (#1069)
1.62.0
- Add a
codefield to errors and warnings (#474) - When using v2 syntax, do not use interpolation in non-root
<style>tags (#1339)
1.61.0
- Support v2 syntax with
parser: 'v2'option (#1318)
1.60.3
- Fix validation of
multipleattributes on bound<select>elements (#1331)
1.60.2
- Fix order of insertions for keyed each blocks with siblings (#1306)
- Bail out of CSS DCE if element has spread attribute (#1300)
- Allow
consoleetc in component events (#1278) - Deconflict against inherited contexts (#1275)
- Make CSS DCE case insensitive (#1269)
- Error on dynamic
multipleattribute for bound select (#1270) - Allow custom events on
<:Window>(#1268)
1.60.1
- Fix spread updates on dynamic components (#1307)
1.60.0
- Spread properties (#195)
svelte.compilereturns an object with{ js, css, ast }properties, wherejsandcssare{ code, map }objects (#1298)- Fixed broken compile errors when using Rollup (#1296)
1.59.0
- Deprecate
teardownin custom event handlers (#531) - Allow static content in keyed
eachblock (#1291) - Allow empty content in keyed
eachblock (#1295) - Only delete applicable transitions (#1290)
1.58.5
- Allow backtick string literals for
svg,tag, andpropsproperties (#1284) - Fix removal of transition styles under Firefox (#1288)
1.58.4
- Fix initial state regression (#1283)
1.58.3
- Actions run in the context of the component (#1279)
- Set refs when mounting dynamic components (#1280)
1.58.2
- (1.58.1 failed to publish)
1.58.1
- Actions (#1247)
- Support
preserveCommentsoption in SSR mode (#1265) - Fix performance regression (#1274)
1.58.0
- Fast row swapping (#588)
- Better error messages for invalid directives (#1242)
- Fix local context variable bugs (#1240, #1254)
- Skip missing property warnings for computed/global properties in dev mode (#1246)
- Add end position to warnings (#1250)
1.57.4
- Deconflict context names (#1229)
- Use
setAttributeto set input types (#1209) - Scale transition duration correctly (#1221)
1.57.3
- Fix scoped CSS on static child elements (#1223)
1.57.2
- Fix scoped CSS on SVG elements (#1224)
1.57.1
- Add each_value to contextProps (#1206)
1.57.0
- Use classes (not attributes) for style encapsulation, and base36-encode hashes (#1118)
1.56.4
- Allow
componentandstateto be context names (#1213) - Don't remove
@supportsrules whencascade: false(#1215)
1.56.3
- Top-level transitions work inside nested components (#1188)
- Always use internal
_mountmethod (#1201)
1.56.2
- Null out
keyfor children of keyed each blocks (#1202)
1.56.1
1.56.0
- Internal refactor (#1122)
- Use correct context for component events (#1184)
- Allow observing
$fooin dev mode (#1181) - Handle dynamic data in default slot (#1144)
1.55.1
- Fix cancellation of store
onchangehandlers (#1177) - Write
["default"]instead of.defaultin legacy mode (#1166) - Upgrade Acorn (#1182)
- Don't warn about capitalisation if
options.namebegins with non-alphabetical character (#1179)
1.55.0
- Add
immutablecompiler option for Svelte and runtime option forStore(#1146) - Fix component store bindings (#1100)
- Fire
oncreatewhen custom element is attached (#1117) - Downgrade empty blocks to a warning (#1156)
- Error on unclosed comment (#1156)
1.54.2
- Prevent
awaitblocks using stale state (#1131) - Prevent erroneous missing data warnings for custom elements (#1065)
- Remove empty selectors in prod mode (#1138)
- Escape attribute values in SSR mode (#1155)
- Remove
<noscript>elements in DOM mode (#1108) - Allow hydration of non-root
<script>/<style>tags (#1163) - Allow interpolation in non-root
<style>tags (#1163)
1.54.1
1.54.0
- Run
oncreatehooks depth-first, top-to-bottom (#1135) - Render boolean attributes correctly in SSR mode (#1109)
- Add
feedaria role to expected roles when doing a11y checks (#1124) - More complete fix for case sensitive attributes (#1062)
- Handle CLRF line endings in await block comments (#1132)
1.53.0
- Base scoping selectors on
<style>contents alone (#1091)
1.52.0
- Deconflict referenced globals (#1079)
- Validate contents of
awaitblocks (#1061) - Fire
oncreatefor components inawaitblocks (#1061) - Automatically fix attribute casing (#1062)
- Fix escaping in
<script>and<style>(#1082) - Error if invalid characters are used in computed properties, and allow any valid identifier in props (#1083)
- Don't run a11y tests on components (#1110)
- Respect
storeoption in SSR mode (#1107)
1.51.1
- Only escape <, > and & characters (#1082)
1.51.0
- Lock
scrollbindings (#1071) - Escape HTML entities when compiling to static HTML (#1066)
- Apply a11y warnings to SVG
<a>attributes withxlink:href(#1008)
1.50.1
- Prevent main fragment being created twice in custom elements (#1064)
1.50.0
- Detect unused/misplaced components (#1039)
- Warn on unused event definitions/transitions (#1051)
- Remove whitespace inside
<:Head>(#1026) - Optimise
<title>(#1027) - Add
bind: falseoption to disable two-way binding (#54)
1.49.3
- Return
htmlfrom SSR compilerrender().toString()methods (#1044) - Correctly reinitialise dynamic components (#1040)
- Allow
<option>outside<select>(#1022) - Fix data references in await-block event handlers (#1032)
1.49.2
1.49.1
- Pass
storeto children in SSR mode (#1029)
1.49.0
- Support
storeas a component property (#1028)
1.48.0
- Added
<:Head>component for injecting contents into document head (#1013)) - SSR
render(...)method now returns a{ html, css: { code, map }, head }object (#1013) - SSR
renderCss(...)method is deprecated (#1013) - Add a
preloadfunction to components (#1015) - Expose
this.rooton nested components (#1023)
1.47.2
- Deconflict computed properties against arguments to
_recompute(#1012) - Allow
awaitblocks in slots (#1018) - Allow components without slots to have whitespace as only child (#1007)
- Correctly set
toStringonCompileError(#1016)
1.47.1
- Sanitize filenames in SSR mode (#1005)
1.47.0
- Support dynamic
import(...)inside<script>tags (#1003)
1.46.1
await...thenshorthand (#957)- Allow dynamic components inside elements (#993)
- Don't use
dataseton SVG nodes (#982) - Fix erroneous
<figcaption>a11y warning (#991) - Handle empty classes when pruning unused selectors (#978)
- Better trimming of SSR'd output (#976)
- Don't add
eventtoexpectedProperties(#972) - Emit error on bad
setarguments in dev mode (#990)
1.46.0
- Pass
filenamethrough to preprocessors (#983)
1.45.0
- Dynamic components (#971)
1.44.2
1.44.1
- Fix bidirectional transitions that reference state (#962)
1.44.0
1.43.1
- Fix parameterised transitions (#962)
- Prevent boolean attributes breaking estree-walker expectations (#961)
- Throw error on cyclical store computations (#964)
1.43.0
- Export
Storeclass to manage global state (#930) - Recognise
aria-current(#953) - Support SSR register options including
extensions(#939) - Friendlier error for illegal contexts (#934)
- Remove whitespace around
<:Window>components (#943)
1.42.1
- Correctly append items inside a slotted
eachblock (#932) - Fix
<:Window bind:online/>(#936) - Attach globals to state upon initialisation (#908)
1.42.0
- Implement
indeterminatebinding for checkbox inputs (#910) - Use
<option>children asvalueattribute if none exists (#928) - Allow quoted property names in default export and sub-properties (#914)
- Various improvements to generated code for bindings
1.41.4
- Handle self-destructive bindings (#917)
- Prevent
innerHTMLwith<option>elements (#915) - Use
datasetunlesslegacyis true (#858) - Add
preparescript to facilitate installing from git (#923)
1.41.3
- Prevent argument name clashes (#911)
- Fix UMD factory arguments (#918)
- Don't attempt to set computed values (#893)
- Fix TypeScript build error (#919)
1.41.2
- Handle attribute selectors with no value (#905)
- Retain
asynckeyword when extracting functions (#904) - Shallow clone
dataon initialisation (#891)
1.41.1
1.41.0
onwarnandonerrorreceive default handlers as second arguments (#883)- Recognise
mutedas boolean property on<audio>elements (#886) - Array destructuring for
eachblock contexts (#889)
1.40.2
1.40.1
- Always use explicit closing tags with
innerHTML(#866) - Escape text in
textContentandinnerHTMLexpressions (#868)
1.40.0
1.39.4
- Extract shared init logic (#855)
- Allow
console.*calls in event handlers (#782) - Marker comments in output (#823)
- Use
textContentandinnerHTMLwhere appropriate (#23) - Various improvements to generated code
1.39.3
- Allow
slot='...'inside custom elements (#827) - Disallow
slot='...'inside if/each blocks (#849) - Use correct parent node for slotted if blocks (#850)
1.39.2
1.39.1
- Always use anchors for slotted content (#822)
- Prevent ES6 in helpers (#838)
- Correctly determine whether to use
timeRangesToArray(#837)
1.39.0
- Always attach fragment to shadow root (#821)
- Add
buffered,seekable,playedbindings to media elements (#819) - Quote
classproperties in legacy mode (#830) - Warn on missing
langattribute on<html>(#828)
1.38.0
- Compile-time a11y warnings (#815)
- Remove redundant input blowback guards (#645)
- Use component name in debugging messages (#781)
1.37.0
- Experimental support for compiling to custom elements (#797)
1.36.0
- Optimize
styleattributes where possible (#455)
1.35.0
setandgetcontinue to work untildestroyis complete (#788)- Observers of unchanged bound values don't fire incorrectly (#804)
- Nested components with slotted content render correctly in SSR mode (#801)
- More efficient rendering of raw and slotted content (#637)
- Handle unquoted attributes in attribute selectors (#798)
1.34.0
- Support nested
<slot>elements (#790) - Attach
optionsto instance (#550, #777) - Error if transitions are applied to component (#791)
- Handle CSS variables in
<style>tag (#757)
1.33.0
- Replace
{{yield}}with<slot>— adds fallback content named slots, andoptions.slots(#763)
1.32.0
- Allow
anchorinitialisation option, alongsidetarget(#784) - Remove leading CSS selectors safely (#783)
1.31.0
- Add
legacycompile option, which adds IE9 compatibility (#773)
1.30.0
- Update all component bindings simultaneously (#760)
- Fix
@keyframesatrules withfromandtoselectors (#774)
1.29.3
- Only recompute tag and attribute values if they could have changed (#768)
- Fix CSS scoping with multiple levels of descendant selectors (#767)
1.29.2
- Preserve space before non-parenthesized media query expression (#759)
- Call
create()on new iterations of static each blocks (#762) - Use
changeevents as well asinputevents to bind range inputs (#740)
1.29.1
- Replace
setanddestroywithnoopwhen component is destroyed (#744)
1.29.0
1.28.1
- Fix unescaping of special words in SSR mode (#741)
1.28.0
- Support
ref:fooas a CSS selector (#693) - Prevent magic-string bugs by only minifying CSS combinators if
cascade: false(#743) - Don't throw an error if component is destroyed twice (#643)
1.27.0
- Minify CSS and remove unused styles (#697)
- Optimize ternary expressions when excluding unused CSS (#696)
- Clear refs after
ondestroycallbacks fire (#706) - Prevent certain forms of component binding blowback (#721)
- Use helper to encapsulate styles (#375)
- Event propagation shorthand —
on:fooequalson:foo='fire("foo", event)(#638) - Allow
refs.*in event handlers, and validate them (#686)
1.26.2
- Unescape
#characters (#722)
1.26.1
- Fix select binding regression (#724)
1.26.0
- Enforce correct order of operations when initialising (#708 and #714)
- Ensure data is up-to-date when re-rendering yield block (#711)
- Fix unescaping of strings, preserve at-rules in CSS (#712)
- Preserve whitespace at end of each blocks (#713)
1.25.1
- Better CSS sourcemaps (#716)
1.25.0
- Fix hoisted event handlers (#699)
- Fire
intro.startandoutro.startevents (#702) - Preserve order of components in keyed each blocks (#700)
- Add
cssMapproperty to compiler output (#698)
1.24.0
- Deconflict names with imports in SSR compiler (#655)
- Improved transition performance (#670)
- Run transitions on initial render (#651)
- Add dev mode warning if
hydrateis true buthydratablewas false (#664) - Manipulate sourcemap to make missing loop values obvious (#683)
- Only add CSS scoping attributes where necessary (#679)
- Warn on unused CSS selectors (#678)
- Fix
<select>binding in loop (#685) - Prevent bindings from calling
oncreatefunctions prematurely (#694) - Simpler codegen (#673)
1.23.4
- Don't recreate if blocks incorrectly (#669)
1.23.3
- Pass parameters to
get_block(#667)
1.23.2
- Fix if blocks being recreated on update (#665)
1.23.1
- Fix each-else blocks that are empty on initial render (#662)
1.23.0
1.22.5
- Fix nested component unmounting bug (#643)
1.22.4
- Include
astinsvelte.compilereturn value (#632) - Set initial value of
<select>binding, if unspecified (#639) - Mark indirect dependencies of
<select>bindings (i.e. the dependencies of their<option>values) (#639)
1.22.3
- Fix nested component unmounting bug (#625)
- Allow components to have computed member expression bindings (#624)
- Handle empty
<style>tags (#634) - Warn on missing component (#623)
- Allow dynamic
typeattribute for unbound inputs (#620) - Rename
addEventListenerandremoveEventListenerdirectives (#621)
1.22.2
- Escape template strings correctly in SSR output (#616)
- Prevent magic-string deprecation warning (#617)
1.22.1
- Sanitise event handler names (#612)
1.22.0
- Symmetry between
mountandunmount. This is potentially a breaking change if your components import other components that were precompiled with an earlier version of Svelte (#592) - Add
cascadeoption, which prevents styles affecting child components iffalse, unless selectors are wrapped in:global(...)and keyframe declaration IDs are prefixed with-global-. This will become the default behaviour in v2 (#583) - Support binding to computed member expressions (#602)
- Coerce empty string in
number/rangeinputs toundefined, not0(#584) - Fix insert location of DOM elements in each/if/nested component edge cases (#610)
1.21.0
- Always use
helpersif referenced, not just for call expressions (#575) - Fix parsing of
<textarea>children (#599) - Treat
<textarea>value attributes and children as equivalent, and fail validation if both are present (#599) - Fix
<textarea>SSR (#599) - Apply CSS transition styles immediately if transition has delay (#574)
- Ensure
transitionManageris treeshakeable (#593) - Fix for environments where
node.style.animationis undefined (#587) - Fix order of operations when dealing with
<select>elements (#590) - Downgrade 'invalid callee' to a warning (#579)
- Convert to TypeScript (#573)
1.20.2
- Fix destruction of compound if-blocks with outros (#572)
1.20.1
- Fix insertion order of
ifblocks and their anchors (#569)
1.20.0
- Faster, better updates of keyed each blocks (#373, #543)
- Use element IDs to robustly track dynamically injected
<style>tags (#554) - Abort outros before corresponding intros (#546)
- Generate less code for
ifblocks withelseblocks (#540) - Ensure
{{yield}}block content is injected into the right place (#561) - Simpler, more readable codegen code (#559)
- Validate transition directives (#564)
- Apply delays to bidirectional transitions (#562)
- Handle all valid HTML entities (#565)
- Fix outros on compound
ifblocks (#565) - Validation for
<:Window>tags (#565) - Increased test coverage (#565)
1.19.1
- Export
generateKeyframes, so that CSS transitions work
1.19.0
- Experimental support for transitions (#7)
- Use
querySelector(':checked')instead ofselectedOptions(#539) - Stringify helpers before bundling them, to avoid renaming errors (#538)
1.18.2
- Parenthesize if-block conditions (#532)
- Fix parsing of parenthesized expressions (#534)
- Fix error on
bind:checkedthat doesn't belong to a checkbox input (#529)
1.18.1
1.18.0
- Visit
<select>attributes after children, to ensure options are in the right state (#521) - Use sibling elements as anchors rather than creating comment nodes wherever possible (#3)
1.17.2
- Replace bad characters when creating variable names based on element names (#516)
1.17.1
1.17.0
- Add
currentTime,durationandpausedbindings for media elements (#406) - Don't treat helpers as dependencies (#492)
- Allow
<:Window>event handlers to access component state (#497) - Allow two-way binding to properties named 'component' (#495)
- Group checkbox bindings correctly, to avoid erroneously unchecking siblings (#498)
- Validate two-way bindings (#494)
- Allow dynamic each-block to have static else-block (#501)
- Initialise
<select>value correctly (#502)
1.16.0
1.15.1
- Clone data before merging it with state (#479)
- Apply binding event handlers before user event handlers (#486)
1.15.0
- Dev mode — downgrade 'missing data' to a warning, and ignore whitelisted globals (#475)
- Fix
<select>value binding when options are updated late (#476) - Throw at compile time if event handler references invalid callee (#473)
- Check for helper function purity (#473)
- Validate
namespaceoption (#473)
1.14.1
- Replace bad characters when creating variable names based on attributes (#470)
1.14.0
- Better guard against naming conflicts (#465)
- Better error if getters and setters are used with
methods(#425) - Don't create whitespace nodes inside elements that can't use them (#189)
- Collapse consecutive
ifstatements with the same condition (#450) - Window
scrollbindings are bidirectional (#404) - Add
bind:onlineto window (#404) - In dev mode, throw if read-only properties are set (#404)
- Prevent conflicts with component name (#464)
- Ensure event handler names are deconflicted (#466)
1.13.7
- Fix observers —
defer: truenow triggers callback after DOM is updated (#441) - Handle empty
computedproperty (#452) - Correctly bind one-way
<select>value attributes with objects (#423) - Hoist event handlers inside each blocks, where possible (#456)
- Don't bind event handler callbacks (#433)
- Internal refactoring and neater code generation (#453)
1.13.6
- Use
assignhelper instead ofObject.assignfor better performance and legacy compatibility (#431) - Improved code generation (#419), (#440), (#442)
1.13.5
1.13.4
- Prevent unclosed
<script>tag causing infinite loop (#435)
1.13.3
- Correctly handle
{{true}},{{false}}and{{null}}(#424) - Update
<select>value attributes correctly (#423) - Bind custom event handler callbacks (#428)
- Disallow
import root(#430) - Prevent component bindings mutating the wrong object (#432)
1.13.2
- Fix deep component bindings (#420)
- Include
cssproperty in compiler output (#409) - Treat functions as mutable objects when recomputing (#413
- Include magic-string in bundle (#410)
- Disable unneeded Bublé transformations for slimmer output (#411)
1.13.1
1.13.0
- Add
<:Window>meta tag with event listeners, and a handful of bindings (#371) - Don't uncheck radios incorrectly (#399)
1.12.1
- Deconflict non-helper functions (
addCssetc) (#388) - Allow reserved words in tags, e.g.
{{class}}(#383)
1.12.0
- Shorthand attributes —
<Widget :foo/>is equivalent to<Widget foo='{{foo}}'/>(#384) - Support
bind:groupfor radio and checkbox inputs (#311, #312) - Better sourcemap support for two-way bindings
1.11.4
- Dev mode warning for bad
component.observearguments (#369) - Translate
component.on('teardown', ...)tocomponent.on('destroy', ...)and add dev warning (#365) - Use shared prototype to save bytes (#378)
1.11.3
1.11.2
- Add component CSS to each document a component is rendered to (#331)
1.11.1
- Fix two-way binding for components inside
eachblocks (#356)
1.11.0
- Add
format: 'eval'andsvelte.create, to create components directly from source code (#345) - Node 4 compatibility (#109)
1.10.3
- Prevent
'</script>'string occurence breaking pages (#349) - Allow reference to whitelisted globals without properties (#333)
- Don't remove
incorrectly (#348) let->varinaddCssblock (#351)
1.10.2
- Accept any case for doctype declarations (#336)
- Allow non-top-level
<script>and<style>tags to pass through without processing (#335)
1.10.1
- typecheck argument in _set when in dev mode (#342)
- Prevent duplicate helpers in non-shared mode (#337)
1.10.0
1.9.1
1.9.0
- Add development warnings (#13), (#320), (#177), (#249)
- Better error if parser encounters an unmatched closing tag (#321)
1.8.1
- Allow implicitly closed elements (#318)
- More informative error messages for unclosed elements/blocks (#258)
- Deprecate
onrenderandonteardownin favour ofoncreateandondestroy(#40)
1.8.0
- Prevent duplicate imports (#308)
- Use
inputevents (notchange) for all input elements other thancheckboxandradio, and textareas (#309) - Encapsulate keyframe declarations (#245)
1.7.1
- Deconflict imports and shared helpers (#222)
- Deconflict each-block contexts and reserved words (#222)
- Allow shorthand properties in expressions (#296)
1.7.0
- Include CSS AST in
svelte.parseoutput (#302) - Better handling of CSS parse errors (#302)
- Initialise
<select>elements with two-way binding correctly (#301) - Allow local context in component event handlers inside
eachblocks (#290) - Fix two-way binding for components inside
eachblocks (#290)
1.6.11
- Initialise dynamic
<option>value correctly (#291)
1.6.10
- Ensure
sourcesandsourcesContentare populated in sourcemaps, even if none of the original code is used (#295) - Add
outputFilenameoption to populatefileandsourcessourcemap properties correctly (#295)
1.6.9
- Don't trigger bindings for torn-down components (#277)
- SSR: Handle two-way bindings (#275)
- Improve performance by checking data has changed before updates (#279)
- Parse CSS with css-tree to prevent transformation errors with unconventional styles (#288)
1.6.8
- Always trigger
onrender, including when change initiator is a nested component (#263) - Handle default function parameters in computations (#274)
1.6.7
1.6.6
1.6.5
- Handle
<!doctype>declarations (#255)
1.6.4
- Fix updates of yields inside each blocks (20e1b05)
- SSR: Handle attributes with values that begin with a number (#248)
- Handle multiline comments in CSS (#252)
1.6.3
- Fix
{{yield}}bugs for components insideifandeachblocks (#230, #231) - Set attributes on
<svg>elements correctly (#233) - Add
svelte.VERSIONproperty to compiler
1.6.2
- Use helpers for
addEventListener,removeEventListener,setAttribute(#227) - Escape
sharedPath(#229) - Handle attributes with values that begin with a number (#234)
- Update dependencies
1.6.1
- SSR: Handle component directives at arbitrary positions (#221)
- Provide useful feedback on invalid void closing tag (#224)
1.6.0
- Replace
standalone: falsewithshared: true, orshared: 'custom/path/to/shared.js'(#218) - Include
shared.jsin package
1.5.0
1.4.0
- Keyed
eachblocks (#81)
1.3.1
1.3.0
- SSR compiler: Support
formatoption (#196) - SSR compiler: Don't self-close 'normal' elements (#200)
- Remove leading spaces from scoped CSS (#140)
- Internal refactoring
1.2.5
- Allow whitelisted globals in templates (#185)
- Intercept parse errors with
options.onerror
1.2.4
1.2.3
- Add support for
namespacedeclaration for SVG (etc) components (#147) - Throw error if methods or lifecycle hooks are arrow functions that use
thisorarguments(#179) - Use
setAttribute()forlistattributes, to preserve link to<datalist>(#178) - Throw error if default export is not an object literal (#190)
- Internal refactoring
1.2.2
- Omit directives in server-side rendering (#163)
- Handle comments in SSR (#165)
- Support calling methods of
event/thisin event handlers (#162) - Remove
mountfrom public API (#150)
1.2.1
- Server-side rendering is available as a compiler option (
generate: 'ssr') (#159) - Allow call expressions where function is not in
helpers(#163)
1.2.0
1.1.3
- Handle
xmlnsattributes correctly (#142) - Error on duplicate
<style>/<script>tags rather than failing silently (#142) - Don't create whitespace text nodes inside SVG elements (#142)
- Require void elements to be lowercase, to eliminate confusion with components (#137)
1.1.2
1.1.1
- Support multiple SVG elements in a component (#130)
1.1.0
- Separate fragment creation from
mount(#91) - Trigger
onrenderhook at correct time for nested components (#103) - Fix keypath dynamic attributes in components (#46)
- Implement
{{yield}}(#112) - Optimise teardown (#99)
- Require computed properties to have at least one dependency (#115)
- Support
{{#each ...}}...{{else}}...{{/each}}(#90) - Triple mustaches (#35)
1.0.7
- Correctly escape HTML entities (#85)
1.0.6
- Generate useful sourcemaps (#60)
1.0.5
- Ensure compiler only generates ES5 code (#75)
get()without arguments returns entire state object (#73)
1.0.4
- Handle empty attributes in elements and components (#63)
- Detach top-level text nodes inside departing each blocks (#62)
1.0.3
- Better generated code for
ifblocks, especially withelse/elseifchains (#28) - Trim unnecessary whitespace from
else/elseifblocks (#49) - Handle trailing comments in script tags (#64)
1.0.2
Set style.cssText rather than style (#44)
1.0.1
- Preserve SVG namespace inside each blocks
- Always use
setAttributewith SVG elements
1.0.0
- Generate AMD, CJS, IIFE and UMD builds
- Correctly insert text nodes before anchors (#31)
0.3.0
- Fix bug where departing element would unset
refincorrectly (#24) - Basic template validation (#6)
- Fire
onrenderhooks once component is in DOM (#18) - Only detach nodes when necessary to do so (#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
readUntilerrors in parser - Basic
<select>binding - Handle missing data
- Prevent infinite set/observe loops
- Add
bind:fooshorthand elseandelseifblocks- Hoist imports
0.1.1
- Support unquoted attributes
- Handle entities in attributes
- Inline nested components
fireandonmethods
0.1.0
- Breaking change – Svelte compiler now generates constructor functions rather than factories (#2)
- SVG support
0.0.2
- First release capable of building TodoMVC
0.0.1
- Just squatting on the package name