Skip to content

Latest commit

 

History

History
592 lines (367 loc) · 23.2 KB

CHANGELOG.md

File metadata and controls

592 lines (367 loc) · 23.2 KB

buble changelog

0.20.0 (2020-03-26)

  • This is the last Buble version to work on Node v4 & v6. Going forward, support for old Node versions that reached End-of-Life will not be actively maintained. #250
  • Fix recognition of catch-declared variables (#237)
  • Prevent labels from being renamed due to let/const transpilation. (#236)
  • Fix scoping of variables declared in for loops. (#233)
  • Fix an error when transpiling for (a[0] in b). (#232)
  • Fix an error when transpiling for with an empty init. (#226)
  • Fix let/const transpilation when combined with shorthand properties. (#229)
  • Fix JSX not respecting advanced white space characters. (#218)
  • Fix name collision when transpiling A = class extends A {}. (#209)
  • Fix os-homedir dependency warnings on install. (#207)
  • Upgrade dependencies to their latest patch versions, fixing security audit warnings. (#250)

0.19.8 (2019-07-03)

  • Allow shebang (#191)
  • Fix tagged template literal in certain cases (#190)
  • Fix removing of trailing commas in certain cases (#194)
  • Make JSX Fragment configurable (#198)
  • Fix transpiling string-keyed properties with whitespaces before colons (#200)

0.19.7 (2019-03-11)

  • Throw error on dynamic import expression if transform is not disabled
  • Throw error on async and await if transform is not disabled
  • Allow await outside of functions
  • Don't bundle acorn dependencies (#165)
  • Inline spread elements where possible (#179)
  • Correctly handle operator precedence for array spread (#177)
  • Correctly pass-through async arrow functions and methods (#109, #146)
  • Move repository to https://github.com/bublejs/buble
  • Exclude non-string keys from rest properties (#149)

0.19.6 (2018-10-23)

  • Fix class expressions with heritage in arrow functions (#150)
  • Support objectAssign: true in API as a short-hand for objectAssign: "Object.assign"
  • Bundle all acorn dependencies (for now), but no others (#159)

0.19.5 (2018-10-16)

  • Transpile U+2028 and U+2029 according to stage 4 proposal json-superset
  • Add /*@__PURE__*/ annotations to transpiled classes
  • Update support data
  • Allow disabling spread properties transpiling
  • Fix specific edge case with spread and computed properties (#139)
  • Allow global return statements
  • Don't create unnecessary this aliases with loops (#120)
  • Don't allow getters and setters if IE8 is transpile target (#20)

0.19.4 (2018-10-06)

  • Fix transpiling destructuring assignments in brace-less if statement's bodies (#152)
  • Fix transpiling const and let after brace-less if statements (#132)
  • Transpile binary and octal number literals if base prefix is upper-case (#74)
  • Mark classes as supported in Chrome 48
  • Mark destructuring of arrow function arguments as not supported in Firefox < 52

0.19.3 (2018-02-13)

  • Make sure browser builds are actually valid ES5 (except for the modules build)

0.19.2 (2018-02-12)

  • Correctly specify browser field in package.json (#107)
  • Fix a compile error about using super outside of class methods
  • Fix transpiling rest properties

0.19.1 (2018-02-10)

  • Fix transpiling let and const if arrow functions are not transpiled (i. e. node: 4)

0.19.0 (2018-02-10)

Enhancements

  • Add support information for new environments
  • Add (pass-thru) support for async generators and for-async-of
  • Add support for dynamic import (#102)
  • Add support for JSX fragments (#62)
  • Add unpkg build and transpile browser build for older environments (#93)
  • Reuse tagged template quasis (#67)
  • Transpile trailing commas in new expressions (#63)
  • Add support for destructuring in for-in and for-of loop heads
  • Add support for destructuring in catch clause params
  • Add support for rest properties in assignments

Fixes

  • Don't remove commas in comments after the last argument (#89)
  • Support transformations involving aliasing of variables in block scopes (#60)
  • Evaluate expression only once with inline default pattern elements
  • Fix nested object and array patterns, rest properties and default values in for loop heads
  • Only put own properties in rest properties
  • Improve declaration of helper variables
  • Allow modification of mutable variables that shadow a const before declaration (#59)
  • Correctly detect modification of immutable variables through destructuring assignments
  • In object methods, support destructuring declarations initialized with a variable having the same name as the method (#86)
  • Fix properties with string literal keys after computed properties (#91)
  • Fix methods after computed properties (#101)
  • Fix short-hand generator methods
  • Fix template literals in array after spread element (#105)
  • Fix arrow functions in array after spread element (#100)
  • Fix arrow functions in new expression after spread element (#100)
  • Restore decoding HTML entities in JSX (#104)
  • Correct various entries in support matrix

0.18.0

  • Allow anonymous functions and classes as default exports (#37)
  • Handle non-breaking spaces in JSX (#46)
  • Allow anonymous classes to be assigned to properties (#33)
  • Add trailingFunctionCommas transformation (#50)

0.17.3

  • Move chalk to dependencies (#35)

0.17.2

  • Fix nested template literals regression (#39)

0.17.1

  • Error on nested rest elements (#31)
  • Allow destructuring with computed properties (#34)

0.17.0

  • Update dependencies
  • Transpile arrow functions unconditionally if spread arguments need transpilation (#22)
  • Better object spread support (#25)
  • Rest properties (#30)
  • Fix (#24)

0.16.0

  • Allow truthy dash-cased props (#2)
  • Make class accessors configurable (#3)
  • Support JSX pragma comments (#5)
  • Handle JSX with no spaces between attributes (#6)

0.15.2

  • Don't create function names for object methods with namedFunctionExpressions: false
  • Simplify destructuring assignment statements
  • Give unique names to methods that shadow free variables (#166)

0.15.1

  • Fix Object.assign regression (#163)

0.15.0

  • More informative CLI errors when input comes from stdin (#155)
  • Prevent PhantomJS shadowing errors (#154)
  • Use local register.js in tests (#153)
  • Correct CLI output filename with .jsx input (#151)
  • Fix whitespace removal bug (#159)
  • Allow computed properties in object destructuring (#146)
  • Support rest elements in array destructuring (#147)
  • Fix array swap assignment expression (#148)
  • Allow template string as destructuring default (#145)
  • Support multiple returning loops with block scoping (cbc17ad5e)
  • Fix super with spread arguments (#129)
  • Arrow function returning computed property (#126)
  • Allow computed property and object spread to coexist (#144)
  • Add namedFunctionExpressions option to prevent scope leak in old browsers (#130)
  • Fix exponentiation assignment edge case (#122)
  • Allow CLI --output flag to work with stdin input

0.14.3

  • Prevent crashing on Node versions more recent than the latest 'supported' version (#102)

0.14.2

  • Allow .jsx file extension (#127)
  • Handle trailing comma in spread operator (#133)
  • Allow empty code blocks in JSX (#131)
  • Allow computed shorthand function name with spread in body (#135)
  • Add --objectAssign CLI option (#113)
  • Allow numeric literals as shorthand method keys (#139)

0.14.1

  • fix initialization of block-scoped variables in for-of and for-in loops (#124)

0.14.0

  • Always wrap block-less bodies in curlies (#110, #117, !80)
  • Make sure block-scoped variables in loops have an initializer (#124)
  • Destructuring assignments (!82)
  • Support string literals in object destructuring (!81)
  • Standalone arrow function expression statements (!79)

0.13.2

  • Fix spread operator when used with new and this (#104, #115)

0.13.1

  • Handle destructuring in for/for-of loop heads (#95)
  • Allow early return (without value) from loops (#103, #105)

0.13.0

  • Require an objectAssign option to be specified if using object spread operator (#93)
  • Fix spread operator with expression method calls and template strings (!74)

0.12.5

  • Prevent reserved words being used as identifiers (#86)
  • Use correct this when transpiling super inside arrow function (#89)
  • Handle body-less for-of loops (#80)

0.12.4

  • Allow references to precede declaration (inside function) in block scoping (#87)

0.12.3

  • Argh, npm

0.12.2

  • Files missing in 0.12.1 (???)

0.12.1

  • Don't require space before parens of shorthand computed method (#82)
  • Allow string keys for shorthand methods (#82)

0.12.0

  • Support u flag in regular expression literals (!62)
  • Save buble/register transformations to $HOME/.buble-cache (!63)

0.11.6

  • Allow shorthand methods with computed names (#78)
  • Include code snippet in error.toString() (#79)

0.11.5

  • Preserve whitespace between JSX tags on single line (#65)

0.11.4

  • Allow computed class methods, except accessors (!56)
  • Compound destructuring (!58)

0.11.3

  • Ensure inserted statements follow use strict pragma (#72)

0.11.2

  • Ensure closing parenthesis is in correct place when transpiling inline computed property object expressions (#73)

0.11.1

  • Fix computed property followed by non-computed property in inline expression

0.11.0

  • Computed properties (#67)
  • Allow super(...) to use rest arguments (#69)

0.10.7

  • Allow customisation of Object.assign (used in object spread) (!51)

0.10.6

  • Handle sparse arrays (#62)
  • Handle spread expressions in JSX (#64)

0.10.5

  • Create intermediate directories when transforming via CLI (#63)
  • Update README (#57)

0.10.4

  • Support spread operator in object literals (!45) and JSX elements (!46)

0.10.3

  • Disable intelligent destructuring, temporarily (#53)
  • Fix whitespace in JSX literals (!39)
  • Add : true to value-less JSX attributes (!40)
  • Quote invalid attribute names (!41)

0.10.2

  • Don't add closing quote to JSX component without attributes (#58)

0.10.1

  • Fix handling of literals inside JSX

0.10.0

  • Basic JSX support

0.9.3

  • Better spread operator support, including with arguments (#40)
  • Fix indentation of inserted statements in class constructors (#39)

0.9.2

  • Allow class to have accessors and no constructor (#48)
  • Fix help message in CLI

0.9.1

  • Prevent confusion over Literal node keys

0.9.0

  • More complete and robust destructuring support (#37, #43)
  • Correct this/arguments references inside for-of loop

0.8.5

  • Allow destructured parameter to have default (#43)
  • Allow continue/break statements inside a for-of loop

0.8.4

  • Allow class body to follow ID/superclass without whitespace (#46)

0.8.3

  • Performance enhancements (!23)

0.8.2

  • More robust version of (!22)

0.8.1

  • Fix export default class A extends B (broken in 0.8.0) (!22)

0.8.0

  • Subclasses inherit static methods (#33)
  • Performance enhancements (!21)

0.7.1

  • Prevent omission of closing paren in template string (#42)
  • Separate variable declarations for each name in destructured declaration (#18)

0.7.0

  • Allow arrow functions to be used as default parameter values (#36)

0.6.7

  • Support static get and set in classes (#34)
  • Support spread operator in expression method call (!14)
  • Fix for-of loops with no space after opening paren (#35)

0.6.6

  • Fix another subclass super() bug (#32)

0.6.5

  • Fix super() call in subclass expression (#32)
  • Less defensive template string parenthesising (!9)

0.6.4

  • Add Node 6 to support matrix

0.6.3

  • Handle empty template strings (#28)

0.6.2

  • Handle body-less do-while blocks (#27)

0.6.1

  • Always remember to close parens in template strings

0.6.0

  • Strip unnecessary empty strings from template literals
  • Intelligent destructuring for object patterns in parameters (#17)

0.5.8

  • Fix exponentiation assignment operator edge case

0.5.7

  • Exponentiation operator support (#24)
  • More informative error messages for for-of and tagged template strings

0.5.6

  • Add dangerousTaggedTemplateString (!2) and dangerousForOf (!3) transforms
  • Prevent deindentation causing errors with removed whitespace in class methods
  • Use correct identifier with default destructured function parameters (#23)

0.5.5

  • Ensure return is in correct place when creating bodies for arrow functions (#21)
  • Prevent deindentation of class methods causing breakage with destructuring statements (#22)

0.5.4

  • Install missing chalk dependency
  • Informative error messages when buble/register fails

0.5.3

  • Add register.js to package. Yes I'm an idiot

0.5.2

  • Add buble/register for use with e.g. Mocha

0.5.1

  • Remove unused dependency

0.5.0

  • Support --target, --yes and --no in CLI
  • Compile entire directory of files via CLI
  • Sourcemap support in CLI
  • All transforms can be disabled (or errors suppressed) with the transforms option (or --yes and --no, in the CLI)
  • import and export will throw an error unless --no modules transform is specified
  • Fix bug with destructuring
  • Fix bug with block scoping and loops

0.4.24

  • Throw if let/const is redeclared, or var is redeclared with a let/const (0.4.22 regression)

0.4.23

  • Add buble.VERSION
  • Tidy up build process (don't bundle Acorn incorrectly)

0.4.22

  • Allow double var declarations (only throw if let or const is redeclared)

0.4.21

  • Add find and findIndex helpers for 0.12 support

0.4.20

  • Bump to resolve unknown npm issue

0.4.19

  • Fix block scoping bug with for loops that don't need to be rewritten as functions

0.4.18

  • Fix break-inside-switch bug

0.4.17

  • Support for...in loops and block scoping

0.4.16

  • Add ie and edge to support matrix

0.4.15

  • Rewrite reserved properties if specified (#9)

0.4.14

  • Allow classes to extend expressions (#15)
  • Experimental (partially implemented) API for disabling transforms based on target environment or custom requirements

0.4.13

  • Fix return statement bug

0.4.12

  • More complete and robust transpilation of loops that need to be rewritten as functions to simulate block scoping (#11, #12, #13)

0.4.11

  • Remove source-map-support from CLI (only useful during development)

0.4.10

  • Basic support for spread operator

0.4.9

  • Support getters and setters on subclasses
  • Disallow unsupported features e.g. generators

0.4.8

  • Support getters and setters on classes
  • Allow identifiers to be renamed in block-scoped destructuring (#8)
  • Transpile body-less arrow functions correctly (#9)

0.4.7

  • Add browser version

0.4.6

  • Report locations of parse/compile errors (#4)

0.4.5

  • Sourcemap support

0.4.4

  • Support for class expressions
  • More robust deconflicting
  • Various bugfixes

0.4.3

  • Handle arbitrary whitespace inside template literals

0.4.2

  • Fix bug-inducing typo

0.4.1

  • Rest parameters

0.4.0

  • Self-hosting!

0.3.4

  • Class inheritance

0.3.3

  • Handle quote marks in template literals

0.3.2

  • Handle empty class declarations

0.3.1

  • Add bin to package

0.3.0

  • (Very) basic CLI
  • Handle export default class ...

0.2.2

  • Initialise children of Property nodes
  • Prevent false positives with reference detection

0.2.1

  • Add missing files

0.2.0

  • Support for a bunch more ES2015 features

0.1.0

  • First (experimental) release