| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports.default = void 0;
 
- var _helperPluginUtils = require("@babel/helper-plugin-utils");
 
- var _default = exports.default = (0, _helperPluginUtils.declare)(api => {
 
-   api.assertVersion("^7.0.0-0 || >8.0.0-alpha <8.0.0-beta");
 
-   const {
 
-     types: t,
 
-     template
 
-   } = api;
 
-   function build(left, right) {
 
-     return t.callExpression(t.memberExpression(t.identifier("Math"), t.identifier("pow")), [left, right]);
 
-   }
 
-   function maybeMemoize(node, scope) {
 
-     if (scope.isStatic(node)) {
 
-       return {
 
-         assign: node,
 
-         ref: t.cloneNode(node)
 
-       };
 
-     }
 
-     if (scope.path.isPattern()) {
 
-       return null;
 
-     }
 
-     const id = scope.generateUidIdentifierBasedOnNode(node);
 
-     scope.push({
 
-       id
 
-     });
 
-     return {
 
-       assign: t.assignmentExpression("=", t.cloneNode(id), node),
 
-       ref: t.cloneNode(id)
 
-     };
 
-   }
 
-   return {
 
-     name: "transform-exponentiation-operator",
 
-     visitor: {
 
-       AssignmentExpression(path) {
 
-         const {
 
-           node,
 
-           scope
 
-         } = path;
 
-         if (node.operator !== "**=") return;
 
-         if (t.isMemberExpression(node.left)) {
 
-           let member1;
 
-           let member2;
 
-           const object = maybeMemoize(node.left.object, scope);
 
-           if (!object) {
 
-             path.replaceWith(template.expression.ast`(() => ${path.node})()`);
 
-             return;
 
-           }
 
-           const {
 
-             property,
 
-             computed
 
-           } = node.left;
 
-           if (computed) {
 
-             const prop = maybeMemoize(property, scope);
 
-             member1 = t.memberExpression(object.assign, prop.assign, true);
 
-             member2 = t.memberExpression(object.ref, prop.ref, true);
 
-           } else {
 
-             member1 = t.memberExpression(object.assign, property, false);
 
-             member2 = t.memberExpression(object.ref, t.cloneNode(property), false);
 
-           }
 
-           path.replaceWith(t.assignmentExpression("=", member1, build(member2, node.right)));
 
-         } else {
 
-           path.replaceWith(t.assignmentExpression("=", node.left, build(t.cloneNode(node.left), node.right)));
 
-         }
 
-       },
 
-       BinaryExpression(path) {
 
-         const {
 
-           node
 
-         } = path;
 
-         if (node.operator === "**") {
 
-           path.replaceWith(build(node.left, node.right));
 
-         }
 
-       }
 
-     }
 
-   };
 
- });
 
- //# sourceMappingURL=index.js.map
 
 
  |