# Changelog > **Tags:** > - [New Feature] > - [Bug Fix] > - [Spec Compliancy] > - [Breaking Change] > - [Documentation] > - [Internal] > - [Polish] _Note: Gaps between patch versions are faulty/broken releases._ ## 3.0.0 * **Polish** * Add autoindentation. * Move global uid registry to a scope registry. * **Breaking Change** * Imports and exports are now illegal anywhere except the root level by default. Set `modules` to [loose mode](http://6to5.org/docs/usage/loose) to allow them everywhere. * Caching is now always enabled for the require hook. It also now no longer caches require resolutions. * `ignoreRegex` fallback has now been dropped from the require hook. `register(/foo/);`, `register({ ignoreRegex: /foo/ })` -> `register({ ignore: /foo/ })`. * Optional fast transformer backwards compatibility support has been removed. Use [loose mode](https://6to5.org/docs/usage/loose). * Removed the optional runtime in favor of the `selfContained` transformer. * Removed the `coreAliasing` transformer in favor of `selfContained`. * Remove `includeRegenerator` option. * This shorthand has been removed from the playground. * The transformer `generators` has been renamed to `regenerator`. * The transformer `propertyMethodAssignment` has been renamed to `property.shorthand`. * The transformer `propertyNameShorthand` has been merged into `property.shorthand`. * The mutator part of the `propertyMethodAssignment` transformer has been merged into `property.mutators`. * The transformer `computedPropertyNames` has been renamed to `property.computed`. * The transformer `letScoping` jas been renamed to `blockScoping`. * The transformer `restParameters` has been renamed to `parameters.rest`. * The transformer `defaultParameters` has been renamed to `parameters.default`. * The transformer `arrayComprehension` and `generatorComprehension` have been merged into `comprehensions`. * **All transformers have been prefixed with their corresponding type. For example, `classes` is now `es6.classes`** ## 2.13.5 * **Bug Fix** * Allow rest parameters to be destructuring patterns. * **Internal** * Upgrade `kexec` to `1.1.0`. ## 2.13.4 * **Bug Fix** * Fix ordering of destructuring and default params. * Fix loop body scope. * Fix `for...of` transformation not retaining it's scope. * Add destructuring assignment support to scope tracking. * **Polish** * More reliable newlines for pretty printing variable declarations. ## 2.13.3 * **Internal** * Add `coverage` and `vendor` to npmignore. ## 2.13.2 * **Bug Fix** * Fix `super` inside of nested functions. * **Internal** * Move let scoping TDZ into a separate transformer until it's more solid. * Use `process.stdin.write` instead of `console.log` in `bin` to avoid sprintfification. ## 2.13.1 * **New Feature** * Temporal dead zone for block binding. ## 2.13.0 * **New Feature** * Block scoped functions. * Add `--loose all` option. * Add playground mallet operator thanks to [@jridgewell](https://github.com/jridgewell). * **Bug Fix** * Rewrote large parts of the let scoping transformer. Now passes all known tests. * **Internal** * Even more optimisations thanks to the awesome [@gaearon](https://github.com/gaearon). * Upgrade `acorn-6to5`. * Fixes exponentation operator thanks to [@charliesome](https://github.com/charliesome). * Fix flow optional parameters with types. * Upgrade `chokidar` to `0.12.6`. * Upgrade `commander` to `2.6.0`. * Upgrade `core-js` to `0.4.5`. * Upgrade `estraverse` to `1.9.1`. * Upgrade `jshint` to `2.5.11`. * Upgrade `regenerator` to `0.8.9`. * Upgrade `regexpu` to `1.0.0`. * Upgrade `source-map` to `0.1.43`. * Upgrade `source-map-support` to `0.2.9`. * Upgrade `browserify` to `8.1.1`. * Upgrade `chai` to `1.10.0`. * Upgrade `istanbul` to `0.3.5`. * Upgrade `mocha` to `2.1.0`. * Upgrade `uglify-js` to `2.4.16`. ## 2.12.6 * **Bug Fix** * Add missing flow type traversal keys. ## 2.12.5 * **Internal** * Fix incorrect `for...in` loop still causing `ember-script` issues. ## 2.12.4 * **Polish** * Rest parameters now allocate the array before populating. * **Internal** * `for...in` loops have been changed to optimised `for` loops - better performance and no enumeration of protoype keys. * Parts of the code generator have now been optimised thanks to [gaearon](https://github.com/gaearon). ## 2.12.3 * **Spec Compliancy** * Optional `typeof` transformer checks for `undefined` before passing it to the helper. * Class methods are now named. ## 2.12.2 * **Internal** * Exclude nodes in function parameters and catch clauses from `isReferenced` check. ## 2.12.1 * **Internal** * Add `.jsx` to list of allowed extensions. ## 2.12.0 * **Bug Fix** * Support non-string JSX literals. * **New Feature** * Loose mode for some transformers that enables non-spec behaviour. * **Internal** * Uglify `--mangle sort` has been added to the build script, cutting minified scripts in half. ## 2.11.4 * **Internal** * Make all dependency versions fixed. ## 2.11.3 * **Bug Fix** * Allow a string to be passed as the `optional` option. ## 2.11.2 * **Bug Fix** * Support esprima-style catch clause handlers. * **Polish** * Don't print a stacktrace for syntax errors in the CLI. ## 2.11.1 * **Bug Fix** * Remove stray `console.log` outputting debug code. * Remove `Dict` from `coreAliasing`. ## 2.11.0 * **Bug Fix** * Fix unnecessary IIFE in default parameters on method calls. * Add support for supers inside of closures. * **New Feature** * Add `--keep-module-id-extensions`/`keepModuleIdExtensions` option to keep extensions in module ids. * **Polish** * Special case single argument spread properties in `super` inside classes. * Don't use a variable declaration for class declaration IFFE. * Rename `inherits` helper parameters. * `coreAliasing` transformer now aliases `Promise`, `Set`, `Map` and more. Thanks [@AluisioASG](https://github.com/AluisioASG). ## 2.10.1 * **Internal** * Upgrade `core-js` to `0.4.4`. * **New Feature** * Added `--include-regenerator` option to CLI and `includeRegenerator` option to API that includes the regenerator runtime if necessary. ## 2.10.0 * **New Feature** * Add `classesFastSuper` optional transformer that doesn't support parent getters and prototype changing. * Add `forOfFast` transformer that speeds up `for...of` on arrays but produces more code. * Add `--react-compat` to `bin/6to5`. * **Spec Compliancy** * Disallow setters without a single parameter. * Add `configurable` and `writable` to defined properties. * Use define instead of assignment for class methods. * **Polish** * Fix bin name in `6to5-node --help`. * Fix shorthand `--whitelist` name in `bin/6to5`. * **Internal** * Hot code optimisation of traversal etc thanks to [gaearon](https://github.com/gaearon). ## 2.9.4 * **Bug Fix** * Support `UpdateExpression`s as `MemberExpression` objects. ## 2.9.3 * **Bug Fix** * Remove `exportsWildcard` helper in favor of `defaults`. ## 2.9.2 * **Bug Fix** * Pass `exports` to `exportWildcard` helper to allow for use inside the optional runtime. ## 2.9.1 * **Bug Fix** * Fix runtime generator breaking the helper inclusion loop. ## 2.9.0 * **Internal** * Upgrade `acorn-6to5`. * Now supports destructuring shorthand properties. ## 2.8.1 * **Bug Fix** * Fix computed accessors on object literals. ## 2.8.0 * **New Feature** * Add `commonStrict`, `amdStrict` and `umdStrict` module formatters that remove `module.exports` interop assignment. * Add `--indent` option to the 6to5 CLI. ## 2.7.4 * **Polish** * Inherit assignments from their declaration in destructuring. * Properly align multi-declarator variable declarations. ## 2.7.3 * **Polish** * Indent and add newlines to `React.createElement` calls in `react` transformer. * Remove `Object.assign` calls and replace it with an `extends` helper. ## 2.7.1 * **New Feature** * Expose `version` on browser and node API. * **Internal** * Upgrade `core-js` to 0.4.1 ## 2.7.0 * **Spec Compliancy** * Disallow reassignments of imports. * **New Feature** * `reactCompat` option to enable pre-v0.12 react components. ## 2.6.3 * **Bug Fix** * Fix 2.6.0 regression caused by faulty export default from a source handling. ## 2.6.2 * **Bug Fix** * Fix rest parameter keys when on functions with params. ## 2.6.1 * **Bug Fix** * Fix rest parameter arguments key. ## 2.6.0 * **Bug Fix** * Better handling of number literal property keys. * Handle `NewExpression` paren insertion edegcases better. * **Internal** * Fix incorrect AST node `identifier("this")`. * Better `toIdentifier` method that handles reserved words. * Upgrade `acorn-6to5`. * Fix exponentiation operator precedence. * Fix line terminators after async contextual keywords. * Add semicolons as class elements inside of a class body. * Upgrade to `core-js` 4.0.0. * Upgrade to `regenerator` 0.8.3. * Fix non-loop labeled statements. * **New Feature** * Basic destructuring defaults * Add `.es` to list of supported extensions. * Add optional `typeofSymbol` transformer. * Use a `for` loop for rest parameters instead of `Array.prototype.slice`. * **Polish** * Move `"use strict";` to inside module bodies instead of at the top of the file. * Better handling of dynamic imports. * **Spec Compliancy** * Class inheritance now has a `function` or `null` type check. * Add `interopRequireWildcard` around wildcard imports and exports to handle non-object exports. ## 2.5.0 * Remove `noDuplicateProperties` transformer. * Better generated UIDs based on nodes. * Default parameters now use `arguments[i]`, conditionals and variable declarations instead of using long-form if statements. ## 2.4.10 * Upgrade `acorn-6to5`. ## 2.4.9 * Upgrade `acorn-6to5`. * Add optional `protoToAssign` transformer. * Fix missing properties from computed property keys. * Make ES7 comprehensions `let` variables. ## 2.4.8 * Make `require("6to5/register")` work with browserify - [#370](https://github.com/6to5/6to5/pull/370). Thanks [@hughsk](https://github.com/hughsk)! ## 2.4.7 * Upgrade `acorn-6to5`. ## 2.4.6 * Move `coreAliasing` and `undefinedToVoid` transformers down to catch `moduleFormatter` transforms. ## 2.4.5 * Avoid printing comments if they've already been output. ## 2.4.4 * Add `module` type to browser build `