* Path#ensureBlock keeps path context
This ensures that if you're inside an ArrowFunction with an expression body (say, you're on the BooleanLiteral in `() => true`), you don't suddenly lose your path context after inserting a variable.
This is because of 82d8aded8e (diff-9e0668ad44535be897b934e7077ecea5R14). Basically, an innocent `Scope#push` caused my visitor to suddenly stop working. Now, we mutate the Path so it's still in the tree.
* Tests
babel-plugin-check-es2015-constants
Validate ES2015 constants (prevents reassignment of const variables).
Example
In
const a = 1;
a = 2;
Out
repl: "a" is read-only
1 | const a = 1;
> 2 | a = 2;
| ^
Installation
npm install --save-dev babel-plugin-check-es2015-constants
Usage
Via .babelrc (Recommended)
.babelrc
{
"plugins": ["check-es2015-constants"]
}
Via CLI
babel --plugins check-es2015-constants script.js
Via Node API
require("babel-core").transform("code", {
plugins: ["check-es2015-constants"]
});
Note
This check will only validate consts. If you need it to compile down to var then you must also install and enable transform-es2015-block-scoping.