diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:31:11 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:31:11 +0800 |
| commit | aa773172311dcada759dfbaac485f4bc6e00bc21 (patch) | |
| tree | ca6d9a5eff3ab8f689f9acb4f0df791d9486813d /node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js | |
| parent | c5a5384e846f242e901e859fe600d695d8990a9a (diff) | |
added babel
Diffstat (limited to 'node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js')
| -rw-r--r-- | node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js b/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js new file mode 100644 index 00000000..984841d7 --- /dev/null +++ b/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js @@ -0,0 +1,56 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _helperPluginUtils = require("@babel/helper-plugin-utils"); +var _core = require("@babel/core"); +var _default = (0, _helperPluginUtils.declare)(api => { + api.assertVersion(7); + return { + name: "transform-logical-assignment-operators", + inherits: require("@babel/plugin-syntax-logical-assignment-operators").default, + visitor: { + AssignmentExpression(path) { + const { + node, + scope + } = path; + const { + operator, + left, + right + } = node; + const operatorTrunc = operator.slice(0, -1); + if (!_core.types.LOGICAL_OPERATORS.includes(operatorTrunc)) { + return; + } + const lhs = _core.types.cloneNode(left); + if (_core.types.isMemberExpression(left)) { + const { + object, + property, + computed + } = left; + const memo = scope.maybeGenerateMemoised(object); + if (memo) { + left.object = memo; + lhs.object = _core.types.assignmentExpression("=", _core.types.cloneNode(memo), object); + } + if (computed) { + const memo = scope.maybeGenerateMemoised(property); + if (memo) { + left.property = memo; + lhs.property = _core.types.assignmentExpression("=", _core.types.cloneNode(memo), property); + } + } + } + path.replaceWith(_core.types.logicalExpression(operatorTrunc, lhs, _core.types.assignmentExpression("=", left, right))); + } + } + }; +}); +exports.default = _default; + +//# sourceMappingURL=index.js.map |
