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.
svelte/CHANGELOG.md

23 KiB

Svelte changelog

1.20.2

  • Fix destruction of compound if-blocks with outros (#572)

1.20.1

  • Fix insertion order of if blocks 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 if blocks with else blocks (#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 if blocks (#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 of selectedOptions (#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:checked that doesn't belong to a checkbox input (#529)

1.18.1

  • Allow destroy() in event handlers (#523)
  • Fix bug with {{yield}} blocks following elements (#524)

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

  • Fixes for static each-else and yield blocks (#509), (#514)
  • Code generation tweaks (#504), (#507)

1.17.0

  • Add currentTime, duration and paused bindings 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

  • Better code generation (#489), (#490), (#491)
  • Prevent binding blowback on initial render (#488)

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 namespace option (#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 if statements with the same condition (#450)
  • Window scroll bindings are bidirectional (#404)
  • Add bind:online to 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: true now triggers callback after DOM is updated (#441)
  • Handle empty computed property (#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 assign helper instead of Object.assign for better performance and legacy compatibility (#431)
  • Improved code generation (#419), (#440), (#442)

1.13.5

  • Read range and number input values as numbers (#436)
  • Better error for bind:value='{{foo}}' (#437)

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 css property 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

  • Prevent infinite loops with pathological component bindings (#398)
  • More robust deconflicting (#401)

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 (addCss etc) (#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:group for radio and checkbox inputs (#311, #312)
  • Better sourcemap support for two-way bindings

1.11.4

  • Dev mode warning for bad component.observe arguments (#369)
  • Translate component.on('teardown', ...) to component.on('destroy', ...) and add dev warning (#365)
  • Use shared prototype to save bytes (#378)

1.11.3

  • Undo CSS behaviour change in 1.11.2 (#372)
  • Pin version of css-tree (#370)

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 each blocks (#356)

1.11.0

  • Add format: 'eval' and svelte.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 &nbsp; incorrectly (#348)
  • let -> var in addCss block (#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

  • Component self-references with <:Self/> (#51)
  • Two-way binding with <select multiple> (#313)

1.9.1

  • Better error for malformed event handlers (#220)
  • Allow function expressions in tags (#269)

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 onrender and onteardown in favour of oncreate and ondestroy (#40)

1.8.0

  • Prevent duplicate imports (#308)
  • Use input events (not change) for all input elements other than checkbox and radio, 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.parse output (#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 each blocks (#290)
  • Fix two-way binding for components inside each blocks (#290)

1.6.11

  • Initialise dynamic <option> value correctly (#291)

1.6.10

  • Ensure sources and sourcesContent are populated in sourcemaps, even if none of the original code is used (#295)
  • Add outputFilename option to populate file and sources sourcemap 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

  • SSR: Fix apostrophes (#267)
  • Add xmlns attributes to SVGs (#262)

1.6.6

  • Omit text from comment anchors (#247)
  • Handle xlink attributes (#264)

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 inside if and each blocks (#230, #231)
  • Set attributes on <svg> elements correctly (#233)
  • Add svelte.VERSION property 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: false with shared: true, or shared: 'custom/path/to/shared.js' (#218)
  • Include shared.js in package

1.5.0

  • Implement standalone: false (#9)
  • SSR: Handle component directives (216)

1.4.0

  • Keyed each blocks (#81)

1.3.1

  • Remove file extensions from AMD dependencies (#144)
  • Throw if options.name is illegal (#102)

1.3.0

  • SSR compiler: Support format option (#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

  • SSR compiler: Implement {{{triples}}} (#197)
  • SSR compiler: Escape HTML in tags (#197)

1.2.3

  • Add support for namespace declaration for SVG (etc) components (#147)
  • Throw error if methods or lifecycle hooks are arrow functions that use this or arguments (#179)
  • Use setAttribute() for list attributes, 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/this in event handlers (#162)
  • Remove mount from 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

  • Server-side rendering of HTML (#148) and CSS (#154)

1.1.3

  • Handle xmlns attributes 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

  • Deconflict variable names (#88, #126)

1.1.1

  • Support multiple SVG elements in a component (#130)

1.1.0

  • Separate fragment creation from mount (#91)
  • Trigger onrender hook 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 if blocks, especially with else/elseif chains (#28)
  • Trim unnecessary whitespace from else/elseif blocks (#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 setAttribute with 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 ref incorrectly (#24)
  • Basic template validation (#6)
  • Fire onrender hooks 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 readUntil errors in parser
  • Basic <select> binding
  • Handle missing data
  • Prevent infinite set/observe loops
  • Add bind:foo shorthand
  • else and elseif blocks
  • Hoist imports

0.1.1

  • Support unquoted attributes
  • Handle entities in attributes
  • Inline nested components
  • fire and on methods

0.1.0

  • Breaking change  Svelte compiler now generates constructor functions rather than factories (#2)
  • SVG support

0.0.2

  • First release capable of building TodoMVC

0.0.1

  • Just squatting on the package name