- 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)
- 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)
- 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)
- Fix class expressions with heritage in arrow functions (#150)
- Support
objectAssign: true
in API as a short-hand forobjectAssign: "Object.assign"
- Bundle all acorn dependencies (for now), but no others (#159)
- 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)
- 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
- Make sure browser builds are actually valid ES5 (except for the modules build)
- Correctly specify browser field in package.json (#107)
- Fix a compile error about using
super
outside of class methods - Fix transpiling rest properties
- Fix transpiling let and const if arrow functions are not transpiled (i. e. node: 4)
- 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
- 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
- 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)
- Move
chalk
to dependencies (#35)
- Fix nested template literals regression (#39)
- Update dependencies
- Transpile arrow functions unconditionally if spread arguments need transpilation (#22)
- Better object spread support (#25)
- Rest properties (#30)
- Fix (#24)
- Allow truthy dash-cased props (#2)
- Make class accessors configurable (#3)
- Support JSX pragma comments (#5)
- Handle JSX with no spaces between attributes (#6)
- 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)
- Fix
Object.assign
regression (#163)
- 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
- Prevent crashing on Node versions more recent than the latest 'supported' version (#102)
- 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)
- fix initialization of block-scoped variables in for-of and for-in loops (#124)
- 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)
- Handle destructuring in for/for-of loop heads (#95)
- Allow early return (without value) from loops (#103, #105)
- Require an
objectAssign
option to be specified if using object spread operator (#93) - Fix spread operator with expression method calls and template strings (!74)
- Prevent reserved words being used as identifiers (#86)
- Use correct
this
when transpilingsuper
inside arrow function (#89) - Handle body-less
for-of
loops (#80)
- Allow references to precede declaration (inside function) in block scoping (#87)
- Argh, npm
- Files missing in 0.12.1 (???)
- Don't require space before parens of shorthand computed method (#82)
- Allow string keys for shorthand methods (#82)
- Support
u
flag in regular expression literals (!62) - Save
buble/register
transformations to$HOME/.buble-cache
(!63)
- Preserve whitespace between JSX tags on single line (#65)
- Ensure inserted statements follow use strict pragma (#72)
- Ensure closing parenthesis is in correct place when transpiling inline computed property object expressions (#73)
- Fix computed property followed by non-computed property in inline expression
- Allow customisation of
Object.assign
(used in object spread) (!51)
- Disable intelligent destructuring, temporarily (#53)
- Fix whitespace in JSX literals (!39)
- Add
: true
to value-less JSX attributes (!40) - Quote invalid attribute names (!41)
- Don't add closing quote to JSX component without attributes (#58)
- Fix handling of literals inside JSX
- Basic JSX support
- Better spread operator support, including with
arguments
(#40) - Fix indentation of inserted statements in class constructors (#39)
- Allow class to have accessors and no constructor (#48)
- Fix help message in CLI
- Prevent confusion over
Literal
node keys
- More complete and robust destructuring support (#37, #43)
- Correct
this
/arguments
references inside for-of loop
- Allow destructured parameter to have default (#43)
- Allow
continue
/break
statements inside a for-of loop
- Allow class body to follow ID/superclass without whitespace (#46)
- Performance enhancements (!23)
- More robust version of (!22)
- Fix
export default class A extends B
(broken in 0.8.0) (!22)
- Prevent omission of closing paren in template string (#42)
- Separate variable declarations for each name in destructured declaration (#18)
- Allow arrow functions to be used as default parameter values (#36)
- Support
static get
andset
in classes (#34) - Support spread operator in expression method call (!14)
- Fix
for-of
loops with no space after opening paren (#35)
- Fix another subclass
super()
bug (#32)
- Add Node 6 to support matrix
- Handle empty template strings (#28)
- Handle body-less do-while blocks (#27)
- Always remember to close parens in template strings
- Strip unnecessary empty strings from template literals
- Intelligent destructuring for object patterns in parameters (#17)
- Fix exponentiation assignment operator edge case
- Exponentiation operator support (#24)
- More informative error messages for for-of and tagged template strings
- Add
dangerousTaggedTemplateString
(!2) anddangerousForOf
(!3) transforms - Prevent deindentation causing errors with removed whitespace in class methods
- Use correct identifier with default destructured function parameters (#23)
- Ensure
return
is in correct place when creating bodies for arrow functions (#21) - Prevent deindentation of class methods causing breakage with destructuring statements (#22)
- Install missing
chalk
dependency - Informative error messages when
buble/register
fails
- Add
register.js
to package. Yes I'm an idiot
- Add
buble/register
for use with e.g. Mocha
- Remove unused dependency
- 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
andexport
will throw an error unless--no modules
transform is specified- Fix bug with destructuring
- Fix bug with block scoping and loops
- Throw if
let
/const
is redeclared, orvar
is redeclared with alet
/const
(0.4.22 regression)
- Add
buble.VERSION
- Tidy up build process (don't bundle Acorn incorrectly)
- Allow double
var
declarations (only throw iflet
orconst
is redeclared)
- Add
find
andfindIndex
helpers for 0.12 support
- Bump to resolve unknown npm issue
- Fix block scoping bug with for loops that don't need to be rewritten as functions
- Fix break-inside-switch bug
- Support
for...in
loops and block scoping
- Add
ie
andedge
to support matrix
- Rewrite reserved properties if specified (#9)
- Allow classes to extend expressions (#15)
- Experimental (partially implemented) API for disabling transforms based on target environment or custom requirements
- Fix return statement bug
- More complete and robust transpilation of loops that need to be rewritten as functions to simulate block scoping (#11, #12, #13)
- Remove source-map-support from CLI (only useful during development)
- Basic support for spread operator
- Support getters and setters on subclasses
- Disallow unsupported features e.g. generators
- Support getters and setters on classes
- Allow identifiers to be renamed in block-scoped destructuring (#8)
- Transpile body-less arrow functions correctly (#9)
- Add browser version
- Report locations of parse/compile errors (#4)
- Sourcemap support
- Support for class expressions
- More robust deconflicting
- Various bugfixes
- Handle arbitrary whitespace inside template literals
- Fix bug-inducing typo
- Rest parameters
- Self-hosting!
- Class inheritance
- Handle quote marks in template literals
- Handle empty
class
declarations
- Add
bin
to package
- (Very) basic CLI
- Handle
export default class ...
- Initialise children of Property nodes
- Prevent false positives with reference detection
- Add missing files
- Support for a bunch more ES2015 features
- First (experimental) release