23 KiB
23 KiB
Changelog
Tags:
- [New Feature]
- [Bug Fix]
- [Spec Compliancy]
- [Breaking Change]
- [Documentation]
- [Internal]
- [Polish]
Note: Gaps between patch versions are faulty/broken releases.
See CHANGELOG - 6to5 for the pre-4.0.0 version changelog.
5.2.17
- Bug Fix
- Fix auxiliary comments not properly being attached to function declaration helpers.
- Add
Supernode type toast-typespatch. - Ignore parameter bindings when attempting to inline them in the
minification.deadCodeEliminationtransformer. - Correct
extensionsarguments when using the Babel CLI.
5.2.16
- Bug Fix
- Fix plugins being disabled when using the whitelist.
- Fix correct function scope being passed to
nameMethod.propertywhen inferring the function name for class methods. - Fix incorrect extensions reference causing weird issues when using the Babel CLI.
- Fix destructuring param reference replacements not inheriting from their original param.
- Spec Compliancy
- Fix order that method decorators are ran in.
5.2.15
- Bug Fix
- Fix initializer descriptor add attempt if it doesn't exist.
5.2.14
- Bug Fix
- Fix bug with initializer decorators where the descriptors weren't being defined if there was no
initializerproperty. - Internal
- Expose
retainLinesoption to CLI. - Fix
retainLinesoption not being taken into consideration when doing multiple variable declaration declarators generation. - Expose minified and unminified copies of dist scripts.
5.2.13
- Bug Fix
- Fix
ExportDeclarations being incorrectly removed when using theutility.deadCodeEliminationtransformer. - Fix position of
utilitytransformers. - New Feature
- Add built-in
esquerysupport. - Internal
- Consolidate notion of "virtual types".
5.2.12
- Polish
- Make UID generation based on module declarations much nicer.
- Internal
- Remove internal check for traversal path replacement of self. This is a pattern that could come up in the wild and it could lead to pretty nasty code and may lead to internal regressions as the test coverage isn't 100% :( Instead, just put it in the fast path.
5.2.11
- Internal
- Rename
getModuleNameoption togetModuleId, doh.
5.2.10
- Bug Fix
- Fix numerous issues in
replaceWithSourceString. Thanks @pangratz! - New Feature
- Add
getModuleNameoption. Thanks @jayphelps!
5.2.9
- Bug Fix
- Fix
_blockHoisttransformer incorrectly sorting nodes on shitty environments that aren't spec compliant in their key order. - Fix broken
parseAPI method reference to an undeclared import.
5.2.7
- Bug Fix
- Move
utility.deadCodeEliminationtransformer up to avoid race conditions. - Fix shorthand property scope binding renaming.
- Polish
- Turn helper variable declarations into function declarations if possible.
- Internal
- Removed native inheritance support from classes.
- Added
replaceWithSourceStringpath API. - Split up
es3.propertyLiteralsandes3.memberExpressionLiteralstransformers tominfication.propertyLiteralsandes3.memberExpressionLiterals.
5.2.6
- Internal
- Fix transformer aliases being accidently set as deprecated ones.
- Expose
PipelineasTransformerPipelineinstead.
5.2.5
- Bug Fix
- Fix
parseAPI not adding all the correct pipeline transformers.
5.2.4
- Bug Fix
- Fix race condition with the Node API being loaded awkwardly and not being able to initialise itself when used in the browser.
- Internal
- Expose
transform.pipeline.
5.2.3
- Bug Fix
- Fix plugin containers being called with an undefined import. Thanks @timbur!
- Allow Flow object separators to be commas. Thanks @monsanto!
- Add missing
StatementandDeclarationnode aliases to flow types.
5.2.2
- Internal
- Allow
util.arrayifyto take arbitrary types and coerce it into an array.
5.2.1
- Bug Fix
- Fix regression in
node/registerthat causednode_modulesto not be ignored.
5.2.0
- Bug Fix
- Fix plugin strings splitting arbitrarily on
:which caused full paths on Windows to fail as they include:after the drive letter. - Call class property
initializers with their target instead of their descriptor. - Fix
ignoreandonlynot properly working on Windows path separators. Thanks @stagas! - Fix
resolveRcrunning on files twice causing issues. Thanks @lukescott! - Fix shorthand properties not correctly being target for
isReferencedchecks. Thanks @monsanto! - Polish
- Allow passing an array of globs to
babel/registeronlyandignoreoptions. Thanks @Mark-Simulacrum! - When inferring function names that collide with upper bindings, instead of doing the wrapper, instead rename them.
- Consider constant-like variable declaration functions to always refer to themselves so TOC can be performed.
- Process globs manually when using
$ babelas some shells such as Windows don't explode them. Thanks @jden! - Add alternative way to execute plugins via a closure that's called with the current Babel instance.
- Internal
- Remove multiple internal transformers in favor of directly doing things when we need to. Previously, declarations such as
_refthat we needed to create in specific scopes were done at the very end via the_declarationstransformer. Now, they're done and added to the scope right when they're needed. This gets rid of the crappy_declarationsproperty on scope nodes and fixes the crappy regenerator bug where it was creating a newBlockStatementso the declarations were being lost. - Rework transformer traversal optimisation. Turns out that calling a
checkfunction for every single node in the AST is ridiculously expensive. 300,000 nodes timesed by ~30 transformers meant that it took tens of seconds to perform while it's quicker to just do the unnecessary traversal. Seems obvious in hindsight. - New Feature
- Add
jscripttransformer that turns named function expressions into function declarations to get around JScript's horribly broken function expression semantics. Thanks @kondi! - Add
@@hasInstancesupport to objects when using thees6.spec.symbolstransformer. - Add
retainLinesoption that retains the line (but not the columns!) of the input code.
5.1.13
- Polish
- Remove symbol check from
definePropertyhelper.
5.1.12
- Bug Fix
- Fix
resolveModuleSourcenot being ran onExportAllDeclarations. - Fix
.babelrcbeing resolved multiple times when using the require hook. - Fix parse error on spread properties in assignment position.
- Fix
externalHelpersoption being incorrectly listed as typestring. - Internal
- Upgrade
core-jsto0.9.0. - Spec Compliancy
- Fix object decorators not using the
initializerpattern. - Remove property initializer descriptor reflection.
5.1.11
- Bug Fix
- Memoise and bind member expression decorators.
- Move JSX children cleaning to opening element visitor. Fixes elements not being cleaned in certain scenarios.
- Consider
SwitchStatements to beScopable. - Fix
bluebirdCoroutinescallinginteropRequireWildcardbefore it's defined. - Add space to
do...whilecode generation. - Validate
superuse beforethisonsuperexit rather than entrance. - Polish
- Add Babel name to logger.
5.1.10
- Bug Fix
- Remove
makePredicatefrom acorn in favor of anindexOf. - Remove statements to expression explosion when inserting a block statement.
- Internal
- Remove runtime compatibility check.
5.1.9
- Bug Fix
- Fix class property initializers with
undefinedvalues not being correctly writable. - Fix self inferring generators incorrectly causing a stack error.
- Fix default export specifiers not triggering AMD
moduleargument inclusion. - Fix assignments not having their module references properly remapped.
- Internal
- Upgrade to latest
acorn. - Polish
- Make invalid LHS pattern error messages nicer.
5.1.8
- Bug Fix
- Only make parenthesized object pattern LHS illegal.
5.1.7
- Internal
- Add
parsenode API.
5.1.6
- Bug Fix
- Fix
runtimebuilt-in catchall not properly checking for local variables.
5.1.5
- Internal
- Bump
core-jsversion.
5.1.4
- Polish
- Add missing
Reflectmethods to runtime transformer.
5.1.3
- Internal
- Switch entirely to vanilla regenerator.
- Clean up and make the parsing of decorators stateless.
- Bug Fix
- Don't do TCO on generators and async functions.
- Add missing
core-jsruntime definitions.
5.1.2
- Bug Fix
- Add
getIteratorandisIterabletobabel-runtimebuild script.
5.1.1
- Bug Fix
- Add missing runtime symbol definitions.
5.1.0
- Bug Fix
- Fix super reference when using decorators.
- Don't do array unpack optimisation when member expressions are present.
- Add missing descriptors for undecorated class properties.
- Don't consider
argumentsandevalvalid function names when doing function name inferrence. - Fix scope tracking of constants in loop heads.
- Parse
AwaitExpressionas a unary instead of an assignment. - Fix regex evaluation when attempting static evaluation.
- Don't emit tokens when doing a lookahead.
- Add missing
testdeclaration toutility.deadCodeEliminationtransformer. - Internal
- Upgrade
regeneratorto the latest and use my branch with the hope of eventually switching to vanilla regenerator. - Add support for the replacement of for loop
inits with statements. - Upgrade dependencies.
- Polish
- When adding the scope IIFE when using default parameters, don't shadow the function expression, just
applythisandargumentsif necessary. - Use path basename as non-default import fallback.
- New Feature
- Add trailing function comma proposal. Thanks @AluisioASG!
- Add support for object literal decorators.
- Make core-js modular when using the
runtimetransformer.
5.0.12
- Bug Fix
- Fix incorrect remapping of module references inside of a function id redirection container.
5.0.11
- Bug Fix
- Fix new
for...ofloops not properly inheriting their original loop. - Internal
- Disable scope instance cache.
- Polish
- Allow comments in
.babelrcJSON.
5.0.9
- Polish
- Use
moduleIdfor UMD global name if available. - Bug Fix
- Fix UMD global
modulevariable shadowing theamd/commonmodulevariable. - Fix Flow param type annotation regression.
- Fix function name collision
toStringwrapper. Thanks @alawatthe!
5.0.8
- Bug Fix
- Fix falsy static class properties not being writable.
- Fix block scoping collisions not properly detecting modules and function clashes.
- Skip
thisbeforesuperfor derived constructors on functions.
5.0.7
- New Feature
- Add
--ignoreand--onlysupport to the CLI. - Bug Fix
- Remove
HOMEPATHenvironment variable from home resolution inbabel/registercache. - Internal
- Disable WIP path resolution introducing infinite recursion in some code examples.
- Polish
- Add live binding to CommonJS default imports.
5.0.6
- Bug Fix
- Fix mangling of import references that collide with properties on
Object.prototype. - Fix duplicate declarations incorrectly being reported for
var.
5.0.5
- Internal
- Upgrade
core-js. - Bug Fix
- Fix arrays not being supported in
util.list.
5.0.4
- Polish
- Check for top level
breakConfiginresolveRc.
5.0.3
- Bug Fix
- Make relative location absolute before calling
resolveRc. - Internal
- Switch to global UID registry.
- Add
breakConfigoption to prevent Babel from erroring when hitting that option.
5.0.1
- Bug Fix
- Fix duplicate declaration regression.
- Fix not being able to call non-writable methods.
5.0.0
- New Feature
- Decorators based on @wycat's stage 1 proposal.
- Class property initializers based on @jeffmo's stage 0 proposal.
- Export extensions based on @leebyron's stage 1 proposal.
- UMD module formatter now supports globals.
- Add
es3.runtime,optimisation.react.inlineElementsandoptimisation.react.constantElementstransformers. - Add stage option that replaces the experimental one.
- Allow ES7 transformer to be enabled via
optionalinstead of only viastage. - Infer string quotes to use in the code generator.
- Consider
export { foo as default };to be the same asexport default foo;. - Add
nonStandardoption that can be set tofalseto remove parser support for JSX and Flow. - Add
jsxPragmaoption. - Automatically generate CLI options based on internal API options.
- Add support for
.babelrcon absolute paths. - Plugin API!
- Internal
- Export
optionsin browser API. - Rewritten parser.
- Don't block hoist when runtime transformer is enabled in system module formatter.
- Rewritten the internal traversal and node replacement API to use "paths" that abstracts out node relationships.
- Polish
- JSX output is now more inline with the official JSX transformer.
- Hoist block scoping IIFE - this improves memory usage and performance.
- Better IIFE detection - references are now checked to see if they're referencing the binding we're searching for.
- Check for import reassignments in constants transformer.
- Make method definitions with expression bodies illegal.
- Save register cache on tick instead of
SIGINT. - Enable strict mode on babel-node eval flag.
- Bug Fixes
- Add support for live bindings. This change also increases the reliablity of export specifier renaming.
- Add support for super update and non equals assignment expressions.
- Rename shadow constructor binding in classes.
- Seed next iteration bindings with previous fresh bindings when reassinging loop block scoped variables.
- Fix new expression spread referencing the wrong constructor.
- Call
resolveModuleSourceon dynamic imports. - Added
paramto list of duplicate declaration kinds. - Breaking Changes
- The Babel playground has been removed.
- ES7 Abstract References have been removed.
- Experimental option has been removed in favor of a stage option.
- Rename
returnUsedHelperstometadataUsedHelpers.
4.7.16
- Bug Fix
- Fix constructor spreading of typed arrays.
- Fix break/continue/return aliasing of non-loops in block scoping transformer.
4.7.15
- Bug Fix
- Fix constructor spreading of collections.
4.7.14
- Bug Fix
- Fix constructor spreading of
Promise. - Internal
- Deprecate remaining playground transformers and abstract references.
4.7.13
- Bug Fix
- Handle comments on use strict directives.
- Fix assignment patterns with a left side pattern.
- Polish
- Special case
thiswhen doing expression memoisation.
4.7.12
- Bug Fix
- Deprecate
playground.methodBinding.
4.7.11
- Bug Fix
- Fix unicode regexes stripping their unicode flag before being passed on two
regexpu.
4.7.10
- Internal
- Deprecate
playground.methodBindingandplayground.objectGetterMemoization. - Bug Fix
- Fix
inputSourceMapoption. Thanks @Rich-Harris!
4.7.9
- Polish
- Allow
inputSourceMapto be set tofalseto skip the source map inference. - Infer computed literal property names.
- Bug Fix
- Fix nested labeled for-ofs.
- Fix block scoping
breakcolliding with the parent switch case. - Internal
- Upgrade
acorn-babel.
4.7.8
- Bug Fix
- Fix computed classes not properly setting symbols.
4.7.7
- Bug Fix
- Fix
typesAPI exposure.
4.7.6
- Bug Fix
- Fix non-Identifier/Literal computed class methods.
- Polish
- Add a fallback if
stackon an error is unconfigurable. - Hoist
esModulemodule declarations to the top of the file to handle circular dependencies better.
4.7.5
- Bug Fix
- Don't remap
breaks to call the iterator return. - Polish
- Use a different helper for computed classes for much nicer output. Also fixes a bug in symbols being non-enumerable so they wouldn't be set on the class.
4.7.4
- Bug Fix
- Rewrite named function expressions in optional async function transformers.
- Hoist directives.
- Remove
Numberfrom the list of validruntimeconstructors. - Internal
spec.typeofSymboltransformer has been renamed toes6.symbols.
4.7.2
- New Feature
"both"option forsourceMap.- Add output types to external helpers. Thanks @neVERberleRfellerER!
- Bug Fix
- Fix node duplication sometimes resulting in a recursion error.
- Ignore
breaks within cases insidefor...of. - Polish
- Split up variable declarations and export declarations to allow easier transformation.
4.7.0
- Bug Fix
- Add
alternateto list ofSTATEMENT_OR_BLOCKkeys. - Add support for module specifiers to
t.isReferenced. - New Feature
- Add
inputSourceMapoption. - Polish
- Throw an error on different
babelandbabel-runtimeversions. - Replicate module environment for
babel-nodeeval. - Clean up classes output.
- Spec Compliancy
- Make it illegal to use a rest parameter on a setter.
4.6.6
- Bug Fix
- Fix incorrect method call in
utility.deadCodeEliminationtransformer. - Fix
es6.blockScopingTDZtransformer duplicating binding nodes.
4.6.5
- Internal
useStricttransformer has been renamed tostrict.
4.6.4
- Bug Fix
- Fix
ForOfStatementnot proplery inheriting labels. - When in closure mode in block scoping transformer, properly check for variable shadowing.
- New Feature
- New
utility.inlineEnvironmentVariablesandutility.inlineExpressiontransformers.
4.6.3
- Bug Fix
- Fix
argumentsbeing incorrectly aliased in arrow function rest parameter optimisation. - Make deoptimisation trigger safer.
- New Feature
- Flow types are now retained when blacklisting the
flowtransformer.
4.6.1
- Bug Fix
- Fix generators in template directory being transformed.
- Fix exposure of
utilfor plugins.
4.6.0
- New Feature
- Desugar sticky regexes to a new constructor expression so it can be handled by a polyfill.
- Spec Compliancy
for...ofnow outputs in a lengthytry...catchthis is to ensure spec compliancy in regards to iterator returns and abrupt completions. See google/traceur-compiler#1773 and babel/babel/#838 for more information.- Polish
- Rest parameters that are only refered to via number properties on member expressions are desugared into a direct
argumentsreference. Thanks @neVERberleRfellerER! $ babelno longer exits on syntax errors.- Internal
- Upgrade
browserify. - Upgrade
source-map. - Publicly expose more internals.
4.5.5
- Polish
- Delete old extensions when overriding them in
babel/register.
4.5.3
- Bug Fix
- Fix whitelisting logic for helper build script.
4.5.2
- New Feature
returnUsedHelpersoption and add whitelist tobuildHelpers.- Bug Fix
- Fix function arity on self referencing inferred named functions.
- Internal
- Bump
acorn-babel. - Start converting source to ES6...
4.5.1
Babel now compiles itself!
4.5.0
- New Feature
- Add
.babelrcsupport. - Bug Fix
- Move use strict directives to the module formatter bodies.
- Internal
- Make default
bin/babelbehaviour to ignore non-compilable files and add a--copy-filesflag to revert to the old behaviour.
4.4.6
- Bug Fix
- Fix extending a class expression with no methods/only constructor. Thanks @neVERberleRfellerER!
- Allow
MemberExpressionas a validleftofForOfStatement. - Polish
- Throw an error when people try and transpile code with the
@jsx React.DOMpragma as it conflicts with the custom jsx constructo method detection. - Crawl all comments for
@jsxpragma. - Internal
- Upgrade
chalk. - Upgrade
core-js.
4.4.5
- Internal
- Remove function self reference optimisation.
4.4.4
- Bug Fix
- Handle inferred function ids to be reassigned and deopt to a slower but working equivalent.
- Don't unpack array patterns that have more elements than their right hand array expression.
- Polish
- Improve syntax highlighting in the code frame. Thanks @lydell!
- Internal
- Upgrade
acorn-babel.
4.4.3
- Bug Fix
- Fix
for...ofiterator break returns being duplicated. - Only call
returnon the iterator if it exists. - Internal
- Rename
selfContainedtransformer toruntime.
4.4.2
- New Feature
- Add
moduleIdoption for specifying a custom module id.
4.4.0
- New Feature
/*** @jsx NAMESPACE **/comments are now honored by thereacttransformer.getModuleNameoption.- Infer function expression names. Thanks @RReverser!
- Bug Fix
- Add proper control flow for tail recursion optimisation.
- Internal
- Remove useless
formatoptions and move theformat.compactoption toformat. - Polish
- Newline handling of the code generator has been heavily improved.
- Code generator now deopts whitespace if the input size is >100KB.
4.3.0
- Breaking Change
- Remove
commonStandardmodule formatter and make it the default behaviour of all the strict module formatters.
4.2.1
- Polish
- Add auxiliary comment to let scoping closure flow control.
4.2.0
- Polish
- Use an assignment instead of a define for
__esModulein loose mode. - Internal
- Add error for
eval();usage and enable strict mode for parsing.
4.1.0
- New Feature
- Add
BABEL_CACHE_PATHandBABEL_DISABLE_CACHEenvironment variables. - Internal
- Replace many internal util functions with modules. Thanks @sindresorhus!
4.0.2
- Bug Fix
- Fix generators not properly propagating their internal declarations.
- Polish
- Update setter param length error message.
- Use ranges on dependencies.
4.0.0
- 6to5 is now known as Babel.
- Global helpers/runtime has now been given the more descriptive name of "external helpers".
