| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.default = void 0;var _helperPluginUtils = require("@babel/helper-plugin-utils");var _pluginSyntaxLogicalAssignmentOperators = require("@babel/plugin-syntax-logical-assignment-operators");var _core = require("@babel/core");var _default = (0, _helperPluginUtils.declare)(api => {  api.assertVersion(7);  return {    name: "proposal-logical-assignment-operators",    inherits: _pluginSyntaxLogicalAssignmentOperators.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;
 |