diff options
Diffstat (limited to 'node_modules/@babel/helper-builder-binary-assignment-operator-visitor/lib/index.js')
| -rw-r--r-- | node_modules/@babel/helper-builder-binary-assignment-operator-visitor/lib/index.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/lib/index.js b/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/lib/index.js new file mode 100644 index 00000000..d4d28127 --- /dev/null +++ b/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/lib/index.js @@ -0,0 +1,42 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +var _t = require("@babel/types"); +var _explodeAssignableExpression = require("./explode-assignable-expression.js"); +const { + assignmentExpression, + sequenceExpression +} = _t; +function _default(opts) { + const { + build, + operator + } = opts; + const visitor = { + AssignmentExpression(path) { + const { + node, + scope + } = path; + if (node.operator !== operator + "=") return; + const nodes = []; + const exploded = (0, _explodeAssignableExpression.default)(node.left, nodes, scope); + nodes.push(assignmentExpression("=", exploded.ref, build(exploded.uid, node.right))); + path.replaceWith(sequenceExpression(nodes)); + }, + BinaryExpression(path) { + const { + node + } = path; + if (node.operator === operator) { + path.replaceWith(build(node.left, node.right)); + } + } + }; + return visitor; +} + +//# sourceMappingURL=index.js.map |
