babel/packages/babel-plugin-proposal-logical-assignment-operators
Justin Ridgewell 7e90d56024
Proposal: Logical Assignment Operators (#7385)
* Proposal: Logical Assignment Operators

https://github.com/jridgewell/proposal-logical-assignment

I'm bringing it [back](https://github.com/babel/babel/pull/516). 😉

* Use expectPlugin

* Add to stage 0 preset

* Add logicalAssignment missing plugin log stuff
2018-02-18 13:56:29 -05:00
..

@babel/plugin-proposal-logical-assignment-operator

Transforms logical assignment operators into short-circuited assignments

Example

In

a ||= b;
obj.a.b ||= c;

a &&= b;
obj.a.b &&= c;

Out

var _obj$a, _obj$a2;

a || (a = b);
(_obj$a = obj.a).b || (_obj$a.b = c);

a && (a = b);
(_obj$a2 = obj.a).b && (_obj$a2.b = c);

Installation

npm install --save-dev @babel/plugin-proposal-logical-assignment-operators

Usage

.babelrc

{
  "plugins": ["@babel/plugin-proposal-logical-assignment-operators"]
}

Via CLI

babel --plugins @babel/plugin-proposal-logical-assignment-operators script.js

Via Node API

require("@babel/core").transform("code", {
  plugins: ["@babel/plugin-proposal-logical-assignment-operators"]
});

References