Spaces:
Sleeping
Sleeping
| ; | |
| Object.defineProperty(exports, '__esModule', { value: true }); | |
| var helperPluginUtils = require('@babel/helper-plugin-utils'); | |
| var core = require('@babel/core'); | |
| function needsWrapping(node) { | |
| if (core.types.isLiteral(node) && !core.types.isTemplateLiteral(node)) { | |
| return false; | |
| } | |
| if (core.types.isCallExpression(node) || core.types.isOptionalCallExpression(node) || core.types.isNewExpression(node)) { | |
| return needsWrapping(node.callee) || node.arguments.some(needsWrapping); | |
| } | |
| if (core.types.isTemplateLiteral(node)) { | |
| return node.expressions.some(needsWrapping); | |
| } | |
| if (core.types.isTaggedTemplateExpression(node)) { | |
| return needsWrapping(node.tag) || needsWrapping(node.quasi); | |
| } | |
| if (core.types.isArrayExpression(node)) { | |
| return node.elements.some(needsWrapping); | |
| } | |
| if (core.types.isObjectExpression(node)) { | |
| return node.properties.some(prop => { | |
| if (core.types.isObjectProperty(prop)) { | |
| return needsWrapping(prop.value) || prop.computed && needsWrapping(prop.key); | |
| } | |
| if (core.types.isObjectMethod(prop)) { | |
| return false; | |
| } | |
| return false; | |
| }); | |
| } | |
| if (core.types.isMemberExpression(node) || core.types.isOptionalMemberExpression(node)) { | |
| return needsWrapping(node.object) || node.computed && needsWrapping(node.property); | |
| } | |
| if (core.types.isFunctionExpression(node) || core.types.isArrowFunctionExpression(node) || core.types.isClassExpression(node)) { | |
| return false; | |
| } | |
| if (core.types.isThisExpression(node)) { | |
| return false; | |
| } | |
| if (core.types.isSequenceExpression(node)) { | |
| return node.expressions.some(needsWrapping); | |
| } | |
| return true; | |
| } | |
| function wrapInitializer(path) { | |
| const { | |
| value | |
| } = path.node; | |
| if (value && needsWrapping(value)) { | |
| path.node.value = core.types.callExpression(core.types.arrowFunctionExpression([], value), []); | |
| } | |
| } | |
| var index = helperPluginUtils.declare(api => { | |
| api.assertVersion("^7.16.0"); | |
| return { | |
| name: "plugin-bugfix-safari-class-field-initializer-scope", | |
| visitor: { | |
| ClassProperty(path) { | |
| wrapInitializer(path); | |
| }, | |
| ClassPrivateProperty(path) { | |
| wrapInitializer(path); | |
| } | |
| } | |
| }; | |
| }); | |
| exports.default = index; | |
| //# sourceMappingURL=index.js.map | |