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

64 lines
1002 B
Markdown

# @babel/plugin-proposal-logical-assignment-operator
> Transforms logical assignment operators into short-circuited assignments
## Example
**In**
```javascript
a ||= b;
obj.a.b ||= c;
a &&= b;
obj.a.b &&= c;
```
**Out**
```javascript
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
```sh
npm install --save-dev @babel/plugin-proposal-logical-assignment-operators
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/plugin-proposal-logical-assignment-operators"]
}
```
### Via CLI
```sh
babel --plugins @babel/plugin-proposal-logical-assignment-operators script.js
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-proposal-logical-assignment-operators"]
});
```
## References
* [Proposal: Logical Assignment Operators](https://github.com/jridgewell/proposal-logical-assignment-operators)