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.
40 KiB
40 KiB
Svelte changelog
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