babel/packages/babel-plugin-check-es2015-constants
Justin Ridgewell 3746273eda Path#ensureBlock keeps path context (#6337)
* 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
2017-09-29 19:00:10 -04:00
..
2017-03-25 21:46:16 -04:00
2017-09-26 11:14:41 -04:00

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

.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.