@babel/plugin-transform-classes
Advanced tools
+12
-13
@@ -364,2 +364,3 @@ import { declare } from '@babel/helper-plugin-utils'; | ||
| } | ||
| return false; | ||
| }); | ||
@@ -472,5 +473,3 @@ let exprPath = thisPath.parentPath.isSequenceExpression() ? thisPath.parentPath : thisPath; | ||
| }); | ||
| const { | ||
| construct | ||
| } = classState; | ||
| const construct = classState.construct; | ||
| types.inheritsComments(construct, method); | ||
@@ -491,6 +490,6 @@ construct.params = method.params; | ||
| function extractDynamicKeys() { | ||
| const node = classState.node; | ||
| const scope = classState.scope; | ||
| const { | ||
| dynamicKeys, | ||
| node, | ||
| scope | ||
| dynamicKeys | ||
| } = classState; | ||
@@ -506,4 +505,4 @@ for (const elem of node.body.body) { | ||
| function setupClosureParamsArgs() { | ||
| const superName = classState.superName; | ||
| const { | ||
| superName, | ||
| dynamicKeys | ||
@@ -544,7 +543,8 @@ } = classState; | ||
| }); | ||
| const node = classState.node; | ||
| setState({ | ||
| classId: classState.node.id, | ||
| classRef: classState.node.id ? types.identifier(classState.node.id.name) : classState.scope.generateUidIdentifier("class"), | ||
| superName: classState.node.superClass, | ||
| isDerived: !!classState.node.superClass, | ||
| classId: node.id, | ||
| classRef: node.id ? types.identifier(node.id.name) : classState.scope.generateUidIdentifier("class"), | ||
| superName: node.superClass, | ||
| isDerived: !!node.superClass, | ||
| constructorBody: types.blockStatement([]) | ||
@@ -557,3 +557,2 @@ }); | ||
| classRef, | ||
| node, | ||
| constructorBody | ||
@@ -607,3 +606,3 @@ } = classState; | ||
| var index = declare((api, options) => { | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.2"); | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.3"); | ||
| const { | ||
@@ -610,0 +609,0 @@ loose = false |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/inline-callSuper-helpers.ts","../src/transformClass.ts","../src/index.ts"],"sourcesContent":["import { template, types as t, type File } from \"@babel/core\";\n\nconst helper = template.statement`\n function CALL_SUPER(\n _this,\n derived,\n args,\n ) {\n function isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n // core-js@3\n if (Reflect.construct.sham) return false;\n\n // Proxy can't be polyfilled. Every browser implemented\n // proxies before or at the same time as Reflect.construct,\n // so if they support Proxy they also support Reflect.construct.\n if (typeof Proxy === \"function\") return true;\n\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}),);\n } catch (e) {\n return false;\n }\n }\n\n // Super\n derived = GET_PROTOTYPE_OF(derived);\n return POSSIBLE_CONSTRUCTOR_RETURN(\n _this,\n isNativeReflectConstruct()\n ? // NOTE: This doesn't work if this.__proto__.constructor has been modified.\n Reflect.construct(\n derived,\n args || [],\n GET_PROTOTYPE_OF(_this).constructor,\n )\n : derived.apply(_this, args),\n );\n }\n`;\n\nconst helperIDs = new WeakMap();\n\nexport default function addCallSuperHelper(file: File) {\n if (helperIDs.has(file)) {\n return t.cloneNode(helperIDs.get(file));\n }\n\n try {\n return file.addHelper(\"callSuper\");\n } catch {\n // old Babel doesn't support the helper.\n }\n\n const id = file.scope.generateUidIdentifier(\"callSuper\");\n helperIDs.set(file, id);\n\n const fn = helper({\n CALL_SUPER: id,\n GET_PROTOTYPE_OF: file.addHelper(\"getPrototypeOf\"),\n POSSIBLE_CONSTRUCTOR_RETURN: file.addHelper(\"possibleConstructorReturn\"),\n });\n\n const [fnPath] = file.path.unshiftContainer(\"body\", [fn]);\n file.scope.registerDeclaration(fnPath);\n\n return t.cloneNode(id);\n}\n","import type { NodePath, Scope, File } from \"@babel/core\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { template, types as t } from \"@babel/core\";\nimport { visitors } from \"@babel/traverse\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport addCallSuperHelper from \"./inline-callSuper-helpers.ts\";\n\ntype ClassAssumptions = {\n setClassMethods: boolean;\n constantSuper: boolean;\n superIsCallableConstructor: boolean;\n noClassCalls: boolean;\n};\n\ntype ClassConstructor = t.ClassMethod & { kind: \"constructor\" };\n\nfunction buildConstructor(\n classRef: t.Identifier,\n constructorBody: t.BlockStatement,\n node: t.Class,\n) {\n const func = t.functionDeclaration(\n t.cloneNode(classRef),\n [],\n constructorBody,\n );\n t.inherits(func, node);\n return func;\n}\n\ntype Descriptor = {\n key: t.Expression;\n get?: t.Expression | null;\n set?: t.Expression | null;\n value?: t.Expression | null;\n constructor?: t.Expression | null;\n};\n\ntype State = {\n parent: t.Node;\n scope: Scope;\n node: t.Class;\n path: NodePath<t.Class>;\n file: File;\n\n classId: t.Identifier | void;\n classRef: t.Identifier;\n superName: t.Expression | null;\n superReturns: NodePath<t.ReturnStatement>[];\n isDerived: boolean;\n extendsNative: boolean;\n\n construct: t.FunctionDeclaration;\n constructorBody: t.BlockStatement;\n userConstructor: ClassConstructor;\n userConstructorPath: NodePath<ClassConstructor>;\n hasConstructor: boolean;\n\n body: t.Statement[];\n superThises: NodePath<t.ThisExpression>[];\n pushedInherits: boolean;\n pushedCreateClass: boolean;\n protoAlias: t.Identifier | null;\n isLoose: boolean;\n\n dynamicKeys: Map<string, t.Expression>;\n\n methods: {\n // 'list' is in the same order as the elements appear in the class body.\n // if there aren't computed keys, we can safely reorder class elements\n // and use 'map' to merge duplicates.\n instance: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n static: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n };\n};\n\ntype PropertyInfo = {\n instance: t.ObjectExpression[] | null;\n static: t.ObjectExpression[] | null;\n};\n\nexport default function transformClass(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n assumptions: ClassAssumptions,\n supportUnicodeId: boolean,\n) {\n const classState: State = {\n parent: undefined,\n scope: undefined,\n node: undefined,\n path: undefined,\n file: undefined,\n\n classId: undefined,\n classRef: undefined,\n superName: null,\n superReturns: [],\n isDerived: false,\n extendsNative: false,\n\n construct: undefined,\n constructorBody: undefined,\n userConstructor: undefined,\n userConstructorPath: undefined,\n hasConstructor: false,\n\n body: [],\n superThises: [],\n pushedInherits: false,\n pushedCreateClass: false,\n protoAlias: null,\n isLoose: false,\n\n dynamicKeys: new Map(),\n\n methods: {\n instance: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n static: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n },\n };\n\n const setState = (newState: Partial<State>) => {\n Object.assign(classState, newState);\n };\n\n const findThisesVisitor = visitors.environmentVisitor({\n ThisExpression(path) {\n classState.superThises.push(path);\n },\n });\n\n function createClassHelper(args: t.Expression[]) {\n return t.callExpression(classState.file.addHelper(\"createClass\"), args);\n }\n\n /**\n * Creates a class constructor or bail out if there is one\n */\n function maybeCreateConstructor() {\n const classBodyPath = classState.path.get(\"body\");\n for (const path of classBodyPath.get(\"body\")) {\n if (path.isClassMethod({ kind: \"constructor\" })) return;\n }\n\n const params: t.FunctionExpression[\"params\"] = [];\n let body;\n\n if (classState.isDerived) {\n body = template.statement.ast`{\n super(...arguments);\n }` as t.BlockStatement;\n } else {\n body = t.blockStatement([]);\n }\n\n classBodyPath.unshiftContainer(\n \"body\",\n t.classMethod(\"constructor\", t.identifier(\"constructor\"), params, body),\n );\n }\n\n function buildBody() {\n maybeCreateConstructor();\n pushBody();\n verifyConstructor();\n\n if (classState.userConstructor) {\n const { constructorBody, userConstructor, construct } = classState;\n\n constructorBody.body.push(...userConstructor.body.body);\n t.inherits(construct, userConstructor);\n t.inherits(constructorBody, userConstructor.body);\n }\n\n pushDescriptors();\n }\n\n function pushBody() {\n const classBodyPaths: any[] = classState.path.get(\"body.body\");\n\n for (const path of classBodyPaths) {\n const node = path.node;\n\n if (path.isClassProperty() || path.isClassPrivateProperty()) {\n throw path.buildCodeFrameError(\"Missing class properties transform.\");\n }\n\n if (node.decorators) {\n throw path.buildCodeFrameError(\n \"Method has decorators, put the decorator plugin before the classes one.\",\n );\n }\n\n if (t.isClassMethod(node)) {\n const isConstructor = node.kind === \"constructor\";\n\n const replaceSupers = new ReplaceSupers({\n methodPath: path,\n objectRef: classState.classRef,\n superRef: classState.superName,\n constantSuper: assumptions.constantSuper,\n file: classState.file,\n refToPreserve: classState.classRef,\n });\n\n replaceSupers.replace();\n\n const superReturns: NodePath<t.ReturnStatement>[] = [];\n path.traverse(\n visitors.environmentVisitor({\n ReturnStatement(path) {\n if (!path.getFunctionParent().isArrowFunctionExpression()) {\n superReturns.push(path);\n }\n },\n }),\n );\n\n if (isConstructor) {\n pushConstructor(superReturns, node as ClassConstructor, path);\n } else {\n path.ensureFunctionName(supportUnicodeId);\n let wrapped;\n if (node !== path.node) {\n wrapped = path.node;\n // The node has been wrapped. Reset it to the original once, but store the wrapper.\n path.replaceWith(node);\n }\n\n pushMethod(node, wrapped);\n }\n }\n }\n }\n\n function pushDescriptors() {\n pushInheritsToBody();\n\n const { body } = classState;\n\n const props: PropertyInfo = {\n instance: null,\n static: null,\n };\n\n for (const placement of [\"static\", \"instance\"] as const) {\n if (classState.methods[placement].list.length) {\n props[placement] = classState.methods[placement].list.map(desc => {\n const obj = t.objectExpression([\n t.objectProperty(t.identifier(\"key\"), desc.key),\n ]);\n\n for (const kind of [\"get\", \"set\", \"value\"] as const) {\n if (desc[kind] != null) {\n obj.properties.push(\n t.objectProperty(t.identifier(kind), desc[kind]),\n );\n }\n }\n\n return obj;\n });\n }\n }\n\n if (props.instance || props.static) {\n let args = [\n t.cloneNode(classState.classRef), // Constructor\n props.instance ? t.arrayExpression(props.instance) : t.nullLiteral(), // instanceDescriptors\n props.static ? t.arrayExpression(props.static) : t.nullLiteral(), // staticDescriptors\n ];\n\n let lastNonNullIndex = 0;\n for (let i = 0; i < args.length; i++) {\n if (!t.isNullLiteral(args[i])) lastNonNullIndex = i;\n }\n args = args.slice(0, lastNonNullIndex + 1);\n\n body.push(t.returnStatement(createClassHelper(args)));\n classState.pushedCreateClass = true;\n }\n }\n\n function wrapSuperCall(\n bareSuper: NodePath<t.CallExpression>,\n superRef: t.Expression,\n thisRef: () => t.Identifier,\n body: NodePath<t.BlockStatement>,\n ) {\n const bareSuperNode = bareSuper.node;\n let call;\n\n if (assumptions.superIsCallableConstructor) {\n bareSuperNode.arguments.unshift(t.thisExpression());\n if (\n bareSuperNode.arguments.length === 2 &&\n t.isSpreadElement(bareSuperNode.arguments[1]) &&\n t.isIdentifier(bareSuperNode.arguments[1].argument, {\n name: \"arguments\",\n })\n ) {\n // special case single arguments spread\n bareSuperNode.arguments[1] = bareSuperNode.arguments[1].argument;\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"apply\"),\n );\n } else {\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"call\"),\n );\n }\n\n call = t.logicalExpression(\"||\", bareSuperNode, t.thisExpression());\n } else {\n const args: t.Expression[] = [\n t.thisExpression(),\n t.cloneNode(classState.classRef),\n ];\n if (bareSuperNode.arguments?.length) {\n const bareSuperNodeArguments = bareSuperNode.arguments as (\n | t.Expression\n | t.SpreadElement\n )[];\n\n /**\n * test262/test/language/expressions/super/call-spread-err-sngl-err-itr-get-get.js\n *\n * var iter = {};\n * Object.defineProperty(iter, Symbol.iterator, {\n * get: function() {\n * throw new Test262Error();\n * }\n * })\n * super(...iter);\n */\n\n if (\n bareSuperNodeArguments.length === 1 &&\n t.isSpreadElement(bareSuperNodeArguments[0]) &&\n t.isIdentifier(bareSuperNodeArguments[0].argument, {\n name: \"arguments\",\n })\n ) {\n args.push(bareSuperNodeArguments[0].argument);\n } else {\n args.push(t.arrayExpression(bareSuperNodeArguments));\n }\n }\n call = t.callExpression(addCallSuperHelper(classState.file), args);\n }\n\n if (\n bareSuper.parentPath.isExpressionStatement() &&\n bareSuper.parentPath.container === body.node.body &&\n body.node.body.length - 1 === bareSuper.parentPath.key\n ) {\n // this super call is the last statement in the body so we can just straight up\n // turn it into a return\n\n if (classState.superThises.length) {\n call = t.assignmentExpression(\"=\", thisRef(), call);\n }\n\n bareSuper.parentPath.replaceWith(t.returnStatement(call));\n } else {\n bareSuper.replaceWith(t.assignmentExpression(\"=\", thisRef(), call));\n }\n }\n\n function verifyConstructor() {\n if (!classState.isDerived) return;\n\n const path = classState.userConstructorPath;\n const body = path.get(\"body\");\n\n const constructorBody = path.get(\"body\");\n\n let maxGuaranteedSuperBeforeIndex = constructorBody.node.body.length;\n\n path.traverse(findThisesVisitor);\n\n let thisRef = function () {\n const ref = path.scope.generateDeclaredUidIdentifier(\"this\");\n maxGuaranteedSuperBeforeIndex++;\n thisRef = () => t.cloneNode(ref);\n return ref;\n };\n\n const buildAssertThisInitialized = function () {\n return t.callExpression(\n classState.file.addHelper(\"assertThisInitialized\"),\n [thisRef()],\n );\n };\n\n const bareSupers: NodePath<t.CallExpression>[] = [];\n path.traverse(\n visitors.environmentVisitor({\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n bareSupers.unshift(parentPath);\n }\n },\n }),\n );\n\n for (const bareSuper of bareSupers) {\n wrapSuperCall(bareSuper, classState.superName, thisRef, body);\n\n if (maxGuaranteedSuperBeforeIndex >= 0) {\n let lastParentPath: NodePath;\n bareSuper.find(function (parentPath) {\n // hit top so short circuit\n if (parentPath === constructorBody) {\n maxGuaranteedSuperBeforeIndex = Math.min(\n maxGuaranteedSuperBeforeIndex,\n lastParentPath.key as number,\n );\n return true;\n }\n\n const { type } = parentPath;\n switch (type) {\n case \"ExpressionStatement\":\n case \"SequenceExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"MemberExpression\":\n case \"CallExpression\":\n case \"NewExpression\":\n case \"VariableDeclarator\":\n case \"VariableDeclaration\":\n case \"BlockStatement\":\n case \"ArrayExpression\":\n case \"ObjectExpression\":\n case \"ObjectProperty\":\n case \"TemplateLiteral\":\n lastParentPath = parentPath;\n return false;\n default:\n if (\n (type === \"LogicalExpression\" &&\n parentPath.node.left === lastParentPath.node) ||\n (parentPath.isConditional() &&\n parentPath.node.test === lastParentPath.node) ||\n (type === \"OptionalCallExpression\" &&\n parentPath.node.callee === lastParentPath.node) ||\n (type === \"OptionalMemberExpression\" &&\n parentPath.node.object === lastParentPath.node)\n ) {\n lastParentPath = parentPath;\n return false;\n }\n }\n\n maxGuaranteedSuperBeforeIndex = -1;\n return true;\n });\n }\n }\n\n const guaranteedCalls = new Set<NodePath>();\n\n for (const thisPath of classState.superThises) {\n const { node, parentPath } = thisPath;\n if (parentPath.isMemberExpression({ object: node })) {\n thisPath.replaceWith(thisRef());\n continue;\n }\n\n let thisIndex: number;\n thisPath.find(function (parentPath) {\n if (parentPath.parentPath === constructorBody) {\n thisIndex = parentPath.key as number;\n return true;\n }\n });\n\n let exprPath: NodePath = thisPath.parentPath.isSequenceExpression()\n ? thisPath.parentPath\n : thisPath;\n if (\n exprPath.listKey === \"arguments\" &&\n (exprPath.parentPath.isCallExpression() ||\n exprPath.parentPath.isOptionalCallExpression())\n ) {\n exprPath = exprPath.parentPath;\n } else {\n exprPath = null;\n }\n\n if (\n (maxGuaranteedSuperBeforeIndex !== -1 &&\n thisIndex > maxGuaranteedSuperBeforeIndex) ||\n guaranteedCalls.has(exprPath)\n ) {\n thisPath.replaceWith(thisRef());\n } else {\n if (exprPath) {\n guaranteedCalls.add(exprPath);\n }\n thisPath.replaceWith(buildAssertThisInitialized());\n }\n }\n\n let wrapReturn;\n\n if (classState.isLoose) {\n wrapReturn = (returnArg: t.Expression | void) => {\n const thisExpr = buildAssertThisInitialized();\n return returnArg\n ? t.logicalExpression(\"||\", returnArg, thisExpr)\n : thisExpr;\n };\n } else {\n wrapReturn = (returnArg: t.Expression | undefined) => {\n const returnParams: t.Expression[] = [thisRef()];\n if (returnArg != null) {\n returnParams.push(returnArg);\n }\n return t.callExpression(\n classState.file.addHelper(\"possibleConstructorReturn\"),\n returnParams,\n );\n };\n }\n\n // if we have a return as the last node in the body then we've already caught that\n // return\n const bodyPaths = body.get(\"body\");\n const guaranteedSuperBeforeFinish =\n maxGuaranteedSuperBeforeIndex !== -1 &&\n maxGuaranteedSuperBeforeIndex < bodyPaths.length;\n if (!bodyPaths.length || !bodyPaths.pop().isReturnStatement()) {\n body.pushContainer(\n \"body\",\n t.returnStatement(\n guaranteedSuperBeforeFinish\n ? thisRef()\n : buildAssertThisInitialized(),\n ),\n );\n }\n\n for (const returnPath of classState.superReturns) {\n returnPath\n .get(\"argument\")\n .replaceWith(wrapReturn(returnPath.node.argument));\n }\n }\n\n /**\n * Push a method to its respective mutatorMap.\n */\n function pushMethod(node: t.ClassMethod, wrapped?: t.Expression) {\n if (node.kind === \"method\") {\n if (processMethod(node)) return;\n }\n\n const placement = node.static ? \"static\" : \"instance\";\n const methods = classState.methods[placement];\n\n const descKey = node.kind === \"method\" ? \"value\" : node.kind;\n const key =\n t.isNumericLiteral(node.key) || t.isBigIntLiteral(node.key)\n ? t.stringLiteral(String(node.key.value))\n : t.toComputedKey(node);\n methods.hasComputed = !t.isStringLiteral(key);\n\n const fn: t.Expression = wrapped ?? t.toExpression(node);\n\n let descriptor: Descriptor;\n if (\n !methods.hasComputed &&\n methods.map.has((key as t.StringLiteral).value)\n ) {\n descriptor = methods.map.get((key as t.StringLiteral).value);\n descriptor[descKey] = fn;\n\n if (descKey === \"value\") {\n descriptor.get = null;\n descriptor.set = null;\n } else {\n descriptor.value = null;\n }\n } else {\n descriptor = {\n key:\n // private name has been handled in class-properties transform\n key as t.Expression,\n [descKey]: fn,\n } as Descriptor;\n methods.list.push(descriptor);\n\n if (!methods.hasComputed) {\n methods.map.set((key as t.StringLiteral).value, descriptor);\n }\n }\n }\n\n function processMethod(node: t.ClassMethod) {\n if (assumptions.setClassMethods && !node.decorators) {\n // use assignments instead of define properties for loose classes\n let { classRef } = classState;\n if (!node.static) {\n insertProtoAliasOnce();\n classRef = classState.protoAlias;\n }\n const methodName = t.memberExpression(\n t.cloneNode(classRef),\n node.key,\n node.computed || t.isLiteral(node.key),\n );\n\n const func: t.Expression = t.functionExpression(\n // @ts-expect-error We actually set and id through .ensureFunctionName\n node.id,\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n t.inherits(func, node);\n\n const expr = t.expressionStatement(\n t.assignmentExpression(\"=\", methodName, func),\n );\n t.inheritsComments(expr, node);\n classState.body.push(expr);\n return true;\n }\n\n return false;\n }\n\n function insertProtoAliasOnce() {\n if (classState.protoAlias === null) {\n setState({ protoAlias: classState.scope.generateUidIdentifier(\"proto\") });\n const classProto = t.memberExpression(\n classState.classRef,\n t.identifier(\"prototype\"),\n );\n const protoDeclaration = t.variableDeclaration(\"var\", [\n t.variableDeclarator(classState.protoAlias, classProto),\n ]);\n\n classState.body.push(protoDeclaration);\n }\n }\n\n /**\n * Replace the constructor body of our class.\n */\n function pushConstructor(\n superReturns: NodePath<t.ReturnStatement>[],\n method: ClassConstructor,\n path: NodePath<ClassConstructor>,\n ) {\n setState({\n userConstructorPath: path,\n userConstructor: method,\n hasConstructor: true,\n superReturns,\n });\n\n const { construct } = classState;\n\n t.inheritsComments(construct, method);\n\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n construct.params = method.params;\n\n t.inherits(construct.body, method.body);\n construct.body.directives = method.body.directives;\n\n // we haven't pushed any descriptors yet\n // @ts-expect-error todo(flow->ts) maybe remove this block - properties from condition are not used anywhere else\n if (classState.hasInstanceDescriptors || classState.hasStaticDescriptors) {\n pushDescriptors();\n }\n\n pushInheritsToBody();\n }\n\n /**\n * Push inherits helper to body.\n */\n function pushInheritsToBody() {\n if (!classState.isDerived || classState.pushedInherits) return;\n\n classState.pushedInherits = true;\n\n // Unshift to ensure that the constructor inheritance is set up before\n // any properties can be assigned to the prototype.\n\n classState.body.unshift(\n t.expressionStatement(\n t.callExpression(\n classState.file.addHelper(\n classState.isLoose ? \"inheritsLoose\" : \"inherits\",\n ),\n [t.cloneNode(classState.classRef), t.cloneNode(classState.superName)],\n ),\n ),\n );\n }\n\n function extractDynamicKeys() {\n const { dynamicKeys, node, scope } = classState;\n\n for (const elem of node.body.body) {\n if (!t.isClassMethod(elem) || !elem.computed) continue;\n if (scope.isPure(elem.key, /* constants only*/ true)) continue;\n\n const id = scope.generateUidIdentifierBasedOnNode(elem.key);\n dynamicKeys.set(id.name, elem.key);\n\n elem.key = id;\n }\n }\n\n function setupClosureParamsArgs() {\n const { superName, dynamicKeys } = classState;\n const closureParams = [];\n const closureArgs = [];\n\n if (classState.isDerived) {\n let arg = t.cloneNode(superName);\n if (classState.extendsNative) {\n arg = t.callExpression(classState.file.addHelper(\"wrapNativeSuper\"), [\n arg,\n ]);\n annotateAsPure(arg);\n }\n\n const param =\n classState.scope.generateUidIdentifierBasedOnNode(superName);\n\n closureParams.push(param);\n closureArgs.push(arg);\n\n setState({ superName: t.cloneNode(param) });\n }\n\n for (const [name, value] of dynamicKeys) {\n closureParams.push(t.identifier(name));\n closureArgs.push(value);\n }\n\n return { closureParams, closureArgs };\n }\n\n function classTransformer(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n ) {\n setState({\n parent: path.parent,\n scope: path.scope,\n node: path.node,\n path,\n file,\n isLoose,\n });\n\n setState({\n classId: classState.node.id,\n // this is the name of the binding that will **always** reference the class we've constructed\n classRef: classState.node.id\n ? t.identifier(classState.node.id.name)\n : classState.scope.generateUidIdentifier(\"class\"),\n superName: classState.node.superClass,\n isDerived: !!classState.node.superClass,\n constructorBody: t.blockStatement([]),\n });\n\n setState({\n extendsNative:\n t.isIdentifier(classState.superName) &&\n builtinClasses.has(classState.superName.name) &&\n !classState.scope.hasBinding(\n classState.superName.name,\n /* noGlobals */ true,\n ),\n });\n\n const { classRef, node, constructorBody } = classState;\n\n setState({\n construct: buildConstructor(classRef, constructorBody, node),\n });\n\n extractDynamicKeys();\n\n const { body } = classState;\n const { closureParams, closureArgs } = setupClosureParamsArgs();\n\n buildBody();\n\n // make sure this class isn't directly called (with A() instead new A())\n if (!assumptions.noClassCalls) {\n constructorBody.body.unshift(\n t.expressionStatement(\n t.callExpression(classState.file.addHelper(\"classCallCheck\"), [\n t.thisExpression(),\n t.cloneNode(classState.classRef),\n ]),\n ),\n );\n }\n\n const isStrict = path.isInStrictMode();\n let constructorOnly = body.length === 0;\n if (constructorOnly && !isStrict) {\n for (const param of classState.construct.params) {\n // It's illegal to put a use strict directive into the body of a function\n // with non-simple parameters for some reason. So, we have to use a strict\n // wrapper function.\n if (!t.isIdentifier(param)) {\n constructorOnly = false;\n break;\n }\n }\n }\n\n const directives = constructorOnly\n ? classState.construct.body.directives\n : [];\n if (!isStrict) {\n directives.push(t.directive(t.directiveLiteral(\"use strict\")));\n }\n\n if (constructorOnly) {\n // named class with only a constructor\n const expr = t.toExpression(classState.construct);\n return classState.isLoose ? expr : createClassHelper([expr]);\n }\n\n if (!classState.pushedCreateClass) {\n body.push(\n t.returnStatement(\n classState.isLoose\n ? t.cloneNode(classState.classRef)\n : createClassHelper([t.cloneNode(classState.classRef)]),\n ),\n );\n }\n\n body.unshift(classState.construct);\n\n const container = t.arrowFunctionExpression(\n closureParams,\n t.blockStatement(body, directives),\n );\n return t.callExpression(container, closureArgs);\n }\n\n return classTransformer(path, file, builtinClasses, isLoose);\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { types as t } from \"@babel/core\";\nimport globalsBrowserUpper from \"@babel/helper-globals/data/browser-upper.json\" with { type: \"json\" };\nimport globalsBuiltinUpper from \"@babel/helper-globals/data/builtin-upper.json\" with { type: \"json\" };\nimport transformClass from \"./transformClass.ts\";\n\nconst builtinClasses = new Set([\n ...globalsBrowserUpper,\n ...globalsBuiltinUpper,\n]);\n\n// The \"Iterator\" global is removed because the Babel construct helper\n// packages/babel-helpers/src/helpers/construct.ts, emitted from the wrapNativeSuper helper,\n// // will invoke it with `new Iterator()` when native Reflect.construct is not available.\n// However, the abstract class Iterator can not be invoked with new. Since the `builtinClasses`\n// is used for the superIsCallableConstructor assumption, we should prioritize the spec mode\nbuiltinClasses.delete(\"Iterator\");\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { loose = false } = options;\n\n const setClassMethods = api.assumption(\"setClassMethods\") ?? loose;\n const constantSuper = api.assumption(\"constantSuper\") ?? loose;\n const superIsCallableConstructor =\n api.assumption(\"superIsCallableConstructor\") ?? loose;\n const noClassCalls = api.assumption(\"noClassCalls\") ?? loose;\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n // todo: investigate traversal requeueing\n const VISITED = new WeakSet();\n\n return {\n name: \"transform-classes\",\n\n visitor: {\n ExportDefaultDeclaration(path) {\n if (!path.get(\"declaration\").isClassDeclaration()) return;\n\n path.splitExportDeclaration();\n },\n ClassDeclaration(path) {\n const { node } = path;\n\n const ref = node.id\n ? t.cloneNode(node.id)\n : path.scope.generateUidIdentifier(\"class\");\n\n path.replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]),\n );\n },\n\n ClassExpression(path, state) {\n const { node } = path;\n if (VISITED.has(node)) return;\n\n const replacement = path.ensureFunctionName(supportUnicodeId);\n if (replacement && replacement.node !== node) return;\n\n VISITED.add(node);\n\n const [replacedPath] = path.replaceWith(\n transformClass(\n path,\n state.file,\n builtinClasses,\n loose,\n {\n setClassMethods,\n constantSuper,\n superIsCallableConstructor,\n noClassCalls,\n },\n supportUnicodeId,\n ),\n );\n\n if (replacedPath.isCallExpression()) {\n annotateAsPure(replacedPath);\n const callee = replacedPath.get(\"callee\");\n if (callee.isArrowFunctionExpression()) {\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n }\n }\n },\n },\n };\n});\n"],"names":["helper","template","statement","helperIDs","WeakMap","addCallSuperHelper","file","has","t","cloneNode","get","addHelper","id","scope","generateUidIdentifier","set","fn","CALL_SUPER","GET_PROTOTYPE_OF","POSSIBLE_CONSTRUCTOR_RETURN","fnPath","path","unshiftContainer","registerDeclaration","buildConstructor","classRef","constructorBody","node","func","functionDeclaration","inherits","transformClass","builtinClasses","isLoose","assumptions","supportUnicodeId","classState","parent","undefined","classId","superName","superReturns","isDerived","extendsNative","construct","userConstructor","userConstructorPath","hasConstructor","body","superThises","pushedInherits","pushedCreateClass","protoAlias","dynamicKeys","Map","methods","instance","hasComputed","list","map","static","setState","newState","Object","assign","findThisesVisitor","visitors","environmentVisitor","ThisExpression","push","createClassHelper","args","callExpression","maybeCreateConstructor","classBodyPath","isClassMethod","kind","params","ast","blockStatement","classMethod","identifier","buildBody","pushBody","verifyConstructor","pushDescriptors","classBodyPaths","isClassProperty","isClassPrivateProperty","buildCodeFrameError","decorators","isConstructor","replaceSupers","ReplaceSupers","methodPath","objectRef","superRef","constantSuper","refToPreserve","replace","traverse","ReturnStatement","getFunctionParent","isArrowFunctionExpression","pushConstructor","ensureFunctionName","wrapped","replaceWith","pushMethod","pushInheritsToBody","props","placement","length","desc","obj","objectExpression","objectProperty","key","properties","arrayExpression","nullLiteral","lastNonNullIndex","i","isNullLiteral","slice","returnStatement","wrapSuperCall","bareSuper","thisRef","bareSuperNode","call","superIsCallableConstructor","arguments","unshift","thisExpression","isSpreadElement","isIdentifier","argument","name","callee","memberExpression","logicalExpression","bareSuperNodeArguments","parentPath","isExpressionStatement","container","assignmentExpression","maxGuaranteedSuperBeforeIndex","ref","generateDeclaredUidIdentifier","buildAssertThisInitialized","bareSupers","Super","isCallExpression","lastParentPath","find","Math","min","type","left","isConditional","test","object","guaranteedCalls","Set","thisPath","isMemberExpression","thisIndex","exprPath","isSequenceExpression","listKey","isOptionalCallExpression","add","wrapReturn","returnArg","thisExpr","returnParams","bodyPaths","guaranteedSuperBeforeFinish","pop","isReturnStatement","pushContainer","returnPath","processMethod","descKey","isNumericLiteral","isBigIntLiteral","stringLiteral","String","value","toComputedKey","isStringLiteral","toExpression","descriptor","setClassMethods","insertProtoAliasOnce","methodName","computed","isLiteral","functionExpression","generator","async","expr","expressionStatement","inheritsComments","classProto","protoDeclaration","variableDeclaration","variableDeclarator","method","directives","hasInstanceDescriptors","hasStaticDescriptors","extractDynamicKeys","elem","isPure","generateUidIdentifierBasedOnNode","setupClosureParamsArgs","closureParams","closureArgs","arg","annotateAsPure","param","classTransformer","superClass","hasBinding","noClassCalls","isStrict","isInStrictMode","constructorOnly","directive","directiveLiteral","arrowFunctionExpression","globalsBrowserUpper","globalsBuiltinUpper","delete","declare","api","options","assertVersion","loose","assumption","isRequired","targets","VISITED","WeakSet","visitor","ExportDefaultDeclaration","isClassDeclaration","splitExportDeclaration","ClassDeclaration","ClassExpression","state","replacement","replacedPath","arrowFunctionToExpression"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../src/inline-callSuper-helpers.ts","../src/transformClass.ts","../src/index.ts"],"sourcesContent":["import { template, types as t, type File } from \"@babel/core\";\n\nconst helper = template.statement`\n function CALL_SUPER(\n _this,\n derived,\n args,\n ) {\n function isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n // core-js@3\n if (Reflect.construct.sham) return false;\n\n // Proxy can't be polyfilled. Every browser implemented\n // proxies before or at the same time as Reflect.construct,\n // so if they support Proxy they also support Reflect.construct.\n if (typeof Proxy === \"function\") return true;\n\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}),);\n } catch (e) {\n return false;\n }\n }\n\n // Super\n derived = GET_PROTOTYPE_OF(derived);\n return POSSIBLE_CONSTRUCTOR_RETURN(\n _this,\n isNativeReflectConstruct()\n ? // NOTE: This doesn't work if this.__proto__.constructor has been modified.\n Reflect.construct(\n derived,\n args || [],\n GET_PROTOTYPE_OF(_this).constructor,\n )\n : derived.apply(_this, args),\n );\n }\n`;\n\nconst helperIDs = new WeakMap();\n\nexport default function addCallSuperHelper(file: File) {\n if (helperIDs.has(file)) {\n return t.cloneNode(helperIDs.get(file));\n }\n\n try {\n return file.addHelper(\"callSuper\");\n } catch {\n // old Babel doesn't support the helper.\n }\n\n const id = file.scope.generateUidIdentifier(\"callSuper\");\n helperIDs.set(file, id);\n\n const fn = helper({\n CALL_SUPER: id,\n GET_PROTOTYPE_OF: file.addHelper(\"getPrototypeOf\"),\n POSSIBLE_CONSTRUCTOR_RETURN: file.addHelper(\"possibleConstructorReturn\"),\n });\n\n const [fnPath] = file.path.unshiftContainer(\"body\", [fn]);\n file.scope.registerDeclaration(fnPath);\n\n return t.cloneNode(id);\n}\n","import type { NodePath, Scope, File } from \"@babel/core\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { template, types as t } from \"@babel/core\";\nimport { visitors } from \"@babel/traverse\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport addCallSuperHelper from \"./inline-callSuper-helpers.ts\";\n\ntype ClassAssumptions = {\n setClassMethods: boolean;\n constantSuper: boolean;\n superIsCallableConstructor: boolean;\n noClassCalls: boolean;\n};\n\ntype ClassConstructor = t.ClassMethod & { kind: \"constructor\" };\n\nfunction buildConstructor(\n classRef: t.Identifier,\n constructorBody: t.BlockStatement,\n node: t.Class,\n) {\n const func = t.functionDeclaration(\n t.cloneNode(classRef),\n [],\n constructorBody,\n );\n t.inherits(func, node);\n return func;\n}\n\ntype Descriptor = {\n key: t.Expression;\n get?: t.Expression | null;\n set?: t.Expression | null;\n value?: t.Expression | null;\n constructor?: t.Expression | null;\n};\n\ntype State = {\n parent: t.Node | undefined;\n scope: Scope | undefined;\n node: t.Class | undefined;\n path: NodePath<t.Class> | undefined;\n file: File | undefined;\n\n classId: t.Identifier | undefined;\n classRef: t.Identifier | undefined;\n superName: t.Expression | null;\n superReturns: NodePath<t.ReturnStatement>[];\n isDerived: boolean;\n extendsNative: boolean;\n\n construct: t.FunctionDeclaration | undefined;\n constructorBody: t.BlockStatement | undefined;\n userConstructor: ClassConstructor | undefined;\n userConstructorPath: NodePath<ClassConstructor> | undefined;\n hasConstructor: boolean;\n\n body: t.Statement[];\n superThises: NodePath<t.ThisExpression>[];\n pushedInherits: boolean;\n pushedCreateClass: boolean;\n protoAlias: t.Identifier | null;\n isLoose: boolean;\n\n dynamicKeys: Map<string, t.Expression>;\n\n methods: {\n // 'list' is in the same order as the elements appear in the class body.\n // if there aren't computed keys, we can safely reorder class elements\n // and use 'map' to merge duplicates.\n instance: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n static: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n };\n};\n\ntype PropertyInfo = {\n instance: t.ObjectExpression[] | null;\n static: t.ObjectExpression[] | null;\n};\n\nexport default function transformClass(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n assumptions: ClassAssumptions,\n supportUnicodeId: boolean,\n) {\n const classState: State = {\n parent: undefined,\n scope: undefined,\n node: undefined,\n path: undefined,\n file: undefined,\n\n classId: undefined,\n classRef: undefined,\n superName: null,\n superReturns: [],\n isDerived: false,\n extendsNative: false,\n\n construct: undefined,\n constructorBody: undefined,\n userConstructor: undefined,\n userConstructorPath: undefined,\n hasConstructor: false,\n\n body: [],\n superThises: [],\n pushedInherits: false,\n pushedCreateClass: false,\n protoAlias: null,\n isLoose: false,\n\n dynamicKeys: new Map(),\n\n methods: {\n instance: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n static: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n },\n };\n\n const setState = (newState: Partial<State>) => {\n Object.assign(classState, newState);\n };\n\n const findThisesVisitor = visitors.environmentVisitor({\n ThisExpression(path) {\n classState.superThises.push(path);\n },\n });\n\n function createClassHelper(args: t.Expression[]) {\n return t.callExpression(classState.file!.addHelper(\"createClass\"), args);\n }\n\n /**\n * Creates a class constructor or bail out if there is one\n */\n function maybeCreateConstructor() {\n const classBodyPath = classState.path!.get(\"body\");\n for (const path of classBodyPath.get(\"body\")) {\n if (path.isClassMethod({ kind: \"constructor\" })) return;\n }\n\n const params: t.FunctionExpression[\"params\"] = [];\n let body;\n\n if (classState.isDerived) {\n body = template.statement.ast`{\n super(...arguments);\n }` as t.BlockStatement;\n } else {\n body = t.blockStatement([]);\n }\n\n classBodyPath.unshiftContainer(\n \"body\",\n t.classMethod(\"constructor\", t.identifier(\"constructor\"), params, body),\n );\n }\n\n function buildBody() {\n maybeCreateConstructor();\n pushBody();\n verifyConstructor();\n\n if (classState.userConstructor) {\n const { constructorBody, userConstructor, construct } = classState;\n\n constructorBody!.body.push(...userConstructor.body.body);\n t.inherits(construct, userConstructor);\n t.inherits(constructorBody, userConstructor.body);\n }\n\n pushDescriptors();\n }\n\n function pushBody() {\n const classBodyPaths: any[] = classState.path!.get(\"body.body\");\n\n for (const path of classBodyPaths) {\n const node = path.node;\n\n if (path.isClassProperty() || path.isClassPrivateProperty()) {\n throw path.buildCodeFrameError(\"Missing class properties transform.\");\n }\n\n if (node.decorators) {\n throw path.buildCodeFrameError(\n \"Method has decorators, put the decorator plugin before the classes one.\",\n );\n }\n\n if (t.isClassMethod(node)) {\n const isConstructor = node.kind === \"constructor\";\n\n const replaceSupers = new ReplaceSupers({\n methodPath: path,\n objectRef: classState.classRef,\n superRef: classState.superName,\n constantSuper: assumptions.constantSuper,\n file: classState.file!,\n refToPreserve: classState.classRef,\n });\n\n replaceSupers.replace();\n\n const superReturns: NodePath<t.ReturnStatement>[] = [];\n path.traverse(\n visitors.environmentVisitor({\n ReturnStatement(path) {\n if (!path.getFunctionParent()!.isArrowFunctionExpression()) {\n superReturns.push(path);\n }\n },\n }),\n );\n\n if (isConstructor) {\n pushConstructor(superReturns, node as ClassConstructor, path);\n } else {\n path.ensureFunctionName(supportUnicodeId);\n let wrapped;\n if (node !== path.node) {\n wrapped = path.node;\n // The node has been wrapped. Reset it to the original once, but store the wrapper.\n path.replaceWith(node);\n }\n\n pushMethod(node, wrapped);\n }\n }\n }\n }\n\n function pushDescriptors() {\n pushInheritsToBody();\n\n const { body } = classState;\n\n const props: PropertyInfo = {\n instance: null,\n static: null,\n };\n\n for (const placement of [\"static\", \"instance\"] as const) {\n if (classState.methods[placement].list.length) {\n props[placement] = classState.methods[placement].list.map(desc => {\n const obj = t.objectExpression([\n t.objectProperty(t.identifier(\"key\"), desc.key),\n ]);\n\n for (const kind of [\"get\", \"set\", \"value\"] as const) {\n if (desc[kind] != null) {\n obj.properties.push(\n t.objectProperty(t.identifier(kind), desc[kind]),\n );\n }\n }\n\n return obj;\n });\n }\n }\n\n if (props.instance || props.static) {\n let args = [\n t.cloneNode(classState.classRef!), // Constructor\n props.instance ? t.arrayExpression(props.instance) : t.nullLiteral(), // instanceDescriptors\n props.static ? t.arrayExpression(props.static) : t.nullLiteral(), // staticDescriptors\n ];\n\n let lastNonNullIndex = 0;\n for (let i = 0; i < args.length; i++) {\n if (!t.isNullLiteral(args[i])) lastNonNullIndex = i;\n }\n args = args.slice(0, lastNonNullIndex + 1);\n\n body.push(t.returnStatement(createClassHelper(args)));\n classState.pushedCreateClass = true;\n }\n }\n\n function wrapSuperCall(\n bareSuper: NodePath<t.CallExpression>,\n superRef: t.Expression,\n thisRef: () => t.Identifier,\n body: NodePath<t.BlockStatement>,\n ) {\n const bareSuperNode = bareSuper.node;\n let call;\n\n if (assumptions.superIsCallableConstructor) {\n bareSuperNode.arguments.unshift(t.thisExpression());\n if (\n bareSuperNode.arguments.length === 2 &&\n t.isSpreadElement(bareSuperNode.arguments[1]) &&\n t.isIdentifier(bareSuperNode.arguments[1].argument, {\n name: \"arguments\",\n })\n ) {\n // special case single arguments spread\n bareSuperNode.arguments[1] = bareSuperNode.arguments[1].argument;\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"apply\"),\n );\n } else {\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"call\"),\n );\n }\n\n call = t.logicalExpression(\"||\", bareSuperNode, t.thisExpression());\n } else {\n const args: t.Expression[] = [\n t.thisExpression(),\n t.cloneNode(classState.classRef!),\n ];\n if (bareSuperNode.arguments?.length) {\n const bareSuperNodeArguments = bareSuperNode.arguments as (\n | t.Expression\n | t.SpreadElement\n )[];\n\n /**\n * test262/test/language/expressions/super/call-spread-err-sngl-err-itr-get-get.js\n *\n * var iter = {};\n * Object.defineProperty(iter, Symbol.iterator, {\n * get: function() {\n * throw new Test262Error();\n * }\n * })\n * super(...iter);\n */\n\n if (\n bareSuperNodeArguments.length === 1 &&\n t.isSpreadElement(bareSuperNodeArguments[0]) &&\n t.isIdentifier(bareSuperNodeArguments[0].argument, {\n name: \"arguments\",\n })\n ) {\n args.push(bareSuperNodeArguments[0].argument);\n } else {\n args.push(t.arrayExpression(bareSuperNodeArguments));\n }\n }\n call = t.callExpression(addCallSuperHelper(classState.file!), args);\n }\n\n if (\n bareSuper.parentPath.isExpressionStatement() &&\n bareSuper.parentPath.container === body.node.body &&\n body.node.body.length - 1 === bareSuper.parentPath.key\n ) {\n // this super call is the last statement in the body so we can just straight up\n // turn it into a return\n\n if (classState.superThises.length) {\n call = t.assignmentExpression(\"=\", thisRef(), call);\n }\n\n bareSuper.parentPath.replaceWith(t.returnStatement(call));\n } else {\n bareSuper.replaceWith(t.assignmentExpression(\"=\", thisRef(), call));\n }\n }\n\n function verifyConstructor() {\n if (!classState.isDerived) return;\n\n const path = classState.userConstructorPath!;\n const body = path.get(\"body\");\n\n const constructorBody = path.get(\"body\");\n\n let maxGuaranteedSuperBeforeIndex = constructorBody.node.body.length;\n\n path.traverse(findThisesVisitor);\n\n let thisRef = function () {\n const ref = path.scope.generateDeclaredUidIdentifier(\"this\");\n maxGuaranteedSuperBeforeIndex++;\n thisRef = () => t.cloneNode(ref);\n return ref;\n };\n\n const buildAssertThisInitialized = function () {\n return t.callExpression(\n classState.file!.addHelper(\"assertThisInitialized\"),\n [thisRef()],\n );\n };\n\n const bareSupers: NodePath<t.CallExpression>[] = [];\n path.traverse(\n visitors.environmentVisitor({\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n bareSupers.unshift(parentPath);\n }\n },\n }),\n );\n\n for (const bareSuper of bareSupers) {\n wrapSuperCall(bareSuper, classState.superName!, thisRef, body);\n\n if (maxGuaranteedSuperBeforeIndex >= 0) {\n let lastParentPath: NodePath;\n bareSuper.find(function (parentPath) {\n // hit top so short circuit\n if (parentPath === constructorBody) {\n maxGuaranteedSuperBeforeIndex = Math.min(\n maxGuaranteedSuperBeforeIndex,\n lastParentPath.key as number,\n );\n return true;\n }\n\n const { type } = parentPath;\n switch (type) {\n case \"ExpressionStatement\":\n case \"SequenceExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"MemberExpression\":\n case \"CallExpression\":\n case \"NewExpression\":\n case \"VariableDeclarator\":\n case \"VariableDeclaration\":\n case \"BlockStatement\":\n case \"ArrayExpression\":\n case \"ObjectExpression\":\n case \"ObjectProperty\":\n case \"TemplateLiteral\":\n lastParentPath = parentPath;\n return false;\n default:\n if (\n (type === \"LogicalExpression\" &&\n parentPath.node.left === lastParentPath.node) ||\n (parentPath.isConditional() &&\n parentPath.node.test === lastParentPath.node) ||\n (type === \"OptionalCallExpression\" &&\n parentPath.node.callee === lastParentPath.node) ||\n (type === \"OptionalMemberExpression\" &&\n parentPath.node.object === lastParentPath.node)\n ) {\n lastParentPath = parentPath;\n return false;\n }\n }\n\n maxGuaranteedSuperBeforeIndex = -1;\n return true;\n });\n }\n }\n\n const guaranteedCalls = new Set<NodePath>();\n\n for (const thisPath of classState.superThises) {\n const { node, parentPath } = thisPath;\n if (parentPath.isMemberExpression({ object: node })) {\n thisPath.replaceWith(thisRef());\n continue;\n }\n\n let thisIndex: number | undefined;\n thisPath.find(function (parentPath) {\n if (parentPath.parentPath === constructorBody) {\n thisIndex = parentPath.key as number;\n return true;\n }\n return false;\n });\n\n let exprPath: NodePath | null = thisPath.parentPath.isSequenceExpression()\n ? thisPath.parentPath\n : thisPath;\n if (\n exprPath.listKey === \"arguments\" &&\n (exprPath.parentPath.isCallExpression() ||\n exprPath.parentPath.isOptionalCallExpression())\n ) {\n exprPath = exprPath.parentPath;\n } else {\n exprPath = null;\n }\n\n if (\n (maxGuaranteedSuperBeforeIndex !== -1 &&\n thisIndex! > maxGuaranteedSuperBeforeIndex) ||\n guaranteedCalls.has(exprPath!)\n ) {\n thisPath.replaceWith(thisRef());\n } else {\n if (exprPath) {\n guaranteedCalls.add(exprPath);\n }\n thisPath.replaceWith(buildAssertThisInitialized());\n }\n }\n\n let wrapReturn;\n\n if (classState.isLoose) {\n wrapReturn = (returnArg: t.Expression | void) => {\n const thisExpr = buildAssertThisInitialized();\n return returnArg\n ? t.logicalExpression(\"||\", returnArg, thisExpr)\n : thisExpr;\n };\n } else {\n wrapReturn = (returnArg: t.Expression | undefined) => {\n const returnParams: t.Expression[] = [thisRef()];\n if (returnArg != null) {\n returnParams.push(returnArg);\n }\n return t.callExpression(\n classState.file!.addHelper(\"possibleConstructorReturn\"),\n returnParams,\n );\n };\n }\n\n // if we have a return as the last node in the body then we've already caught that\n // return\n const bodyPaths = body.get(\"body\");\n const guaranteedSuperBeforeFinish =\n maxGuaranteedSuperBeforeIndex !== -1 &&\n maxGuaranteedSuperBeforeIndex < bodyPaths.length;\n if (!bodyPaths.length || !bodyPaths.pop()!.isReturnStatement()) {\n body.pushContainer(\n \"body\",\n t.returnStatement(\n guaranteedSuperBeforeFinish\n ? thisRef()\n : buildAssertThisInitialized(),\n ),\n );\n }\n\n for (const returnPath of classState.superReturns) {\n returnPath\n .get(\"argument\")\n .replaceWith(wrapReturn(returnPath.node.argument!));\n }\n }\n\n /**\n * Push a method to its respective mutatorMap.\n */\n function pushMethod(node: t.ClassMethod, wrapped?: t.Expression) {\n if (node.kind === \"method\") {\n if (processMethod(node)) return;\n }\n\n const placement = node.static ? \"static\" : \"instance\";\n const methods = classState.methods[placement];\n\n const descKey = node.kind === \"method\" ? \"value\" : node.kind;\n const key =\n t.isNumericLiteral(node.key) || t.isBigIntLiteral(node.key)\n ? t.stringLiteral(String(node.key.value))\n : t.toComputedKey(node);\n methods.hasComputed = !t.isStringLiteral(key);\n\n const fn: t.Expression = wrapped ?? t.toExpression(node);\n\n let descriptor: Descriptor;\n if (\n !methods.hasComputed &&\n methods.map.has((key as t.StringLiteral).value)\n ) {\n descriptor = methods.map.get((key as t.StringLiteral).value)!;\n descriptor[descKey] = fn;\n\n if (descKey === \"value\") {\n descriptor.get = null;\n descriptor.set = null;\n } else {\n descriptor.value = null;\n }\n } else {\n descriptor = {\n key:\n // private name has been handled in class-properties transform\n key as t.Expression,\n [descKey]: fn,\n } as Descriptor;\n methods.list.push(descriptor);\n\n if (!methods.hasComputed) {\n methods.map.set((key as t.StringLiteral).value, descriptor);\n }\n }\n }\n\n function processMethod(node: t.ClassMethod) {\n if (assumptions.setClassMethods && !node.decorators) {\n // use assignments instead of define properties for loose classes\n let { classRef } = classState;\n if (!node.static) {\n insertProtoAliasOnce();\n classRef = classState.protoAlias!;\n }\n const methodName = t.memberExpression(\n t.cloneNode(classRef!),\n node.key,\n node.computed || t.isLiteral(node.key),\n );\n\n const func: t.Expression = t.functionExpression(\n // @ts-expect-error We actually set and id through .ensureFunctionName\n node.id,\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n t.inherits(func, node);\n\n const expr = t.expressionStatement(\n t.assignmentExpression(\"=\", methodName, func),\n );\n t.inheritsComments(expr, node);\n classState.body.push(expr);\n return true;\n }\n\n return false;\n }\n\n function insertProtoAliasOnce() {\n if (classState.protoAlias === null) {\n setState({\n protoAlias: classState.scope!.generateUidIdentifier(\"proto\"),\n });\n const classProto = t.memberExpression(\n classState.classRef!,\n t.identifier(\"prototype\"),\n );\n const protoDeclaration = t.variableDeclaration(\"var\", [\n t.variableDeclarator(classState.protoAlias!, classProto),\n ]);\n\n classState.body.push(protoDeclaration);\n }\n }\n\n /**\n * Replace the constructor body of our class.\n */\n function pushConstructor(\n superReturns: NodePath<t.ReturnStatement>[],\n method: ClassConstructor,\n path: NodePath<ClassConstructor>,\n ) {\n setState({\n userConstructorPath: path,\n userConstructor: method,\n hasConstructor: true,\n superReturns,\n });\n\n const construct = classState.construct!;\n\n t.inheritsComments(construct, method);\n\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n construct.params = method.params;\n\n t.inherits(construct.body, method.body);\n construct.body.directives = method.body.directives;\n\n // we haven't pushed any descriptors yet\n // @ts-expect-error todo(flow->ts) maybe remove this block - properties from condition are not used anywhere else\n if (classState.hasInstanceDescriptors || classState.hasStaticDescriptors) {\n pushDescriptors();\n }\n\n pushInheritsToBody();\n }\n\n /**\n * Push inherits helper to body.\n */\n function pushInheritsToBody() {\n if (!classState.isDerived || classState.pushedInherits) return;\n\n classState.pushedInherits = true;\n\n // Unshift to ensure that the constructor inheritance is set up before\n // any properties can be assigned to the prototype.\n\n classState.body.unshift(\n t.expressionStatement(\n t.callExpression(\n classState.file!.addHelper(\n classState.isLoose ? \"inheritsLoose\" : \"inherits\",\n ),\n [\n t.cloneNode(classState.classRef!),\n t.cloneNode(classState.superName!),\n ],\n ),\n ),\n );\n }\n\n function extractDynamicKeys() {\n const node = classState.node!;\n const scope = classState.scope!;\n const { dynamicKeys } = classState;\n\n for (const elem of node.body.body) {\n if (!t.isClassMethod(elem) || !elem.computed) continue;\n if (scope.isPure(elem.key, /* constants only*/ true)) continue;\n\n const id = scope.generateUidIdentifierBasedOnNode(elem.key);\n dynamicKeys.set(id.name, elem.key);\n\n elem.key = id;\n }\n }\n\n function setupClosureParamsArgs() {\n const superName = classState.superName!;\n const { dynamicKeys } = classState;\n const closureParams = [];\n const closureArgs = [];\n\n if (classState.isDerived) {\n let arg = t.cloneNode(superName);\n if (classState.extendsNative) {\n arg = t.callExpression(classState.file!.addHelper(\"wrapNativeSuper\"), [\n arg,\n ]);\n annotateAsPure(arg);\n }\n\n const param =\n classState.scope!.generateUidIdentifierBasedOnNode(superName);\n\n closureParams.push(param);\n closureArgs.push(arg);\n\n setState({ superName: t.cloneNode(param) });\n }\n\n for (const [name, value] of dynamicKeys) {\n closureParams.push(t.identifier(name));\n closureArgs.push(value);\n }\n\n return { closureParams, closureArgs };\n }\n\n function classTransformer(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n ) {\n setState({\n parent: path.parent,\n scope: path.scope,\n node: path.node,\n path,\n file,\n isLoose,\n });\n\n const node = classState.node!;\n\n setState({\n classId: node.id!,\n // this is the name of the binding that will **always** reference the class we've constructed\n classRef: node.id\n ? t.identifier(node.id.name)\n : classState.scope!.generateUidIdentifier(\"class\"),\n superName: node.superClass,\n isDerived: !!node.superClass,\n constructorBody: t.blockStatement([]),\n });\n\n setState({\n extendsNative:\n t.isIdentifier(classState.superName) &&\n builtinClasses.has(classState.superName.name) &&\n !classState.scope!.hasBinding(\n classState.superName.name,\n /* noGlobals */ true,\n ),\n });\n\n const { classRef, constructorBody } = classState;\n\n setState({\n construct: buildConstructor(classRef!, constructorBody!, node),\n });\n\n extractDynamicKeys();\n\n const { body } = classState;\n const { closureParams, closureArgs } = setupClosureParamsArgs();\n\n buildBody();\n\n // make sure this class isn't directly called (with A() instead new A())\n if (!assumptions.noClassCalls) {\n constructorBody!.body.unshift(\n t.expressionStatement(\n t.callExpression(classState.file!.addHelper(\"classCallCheck\"), [\n t.thisExpression(),\n t.cloneNode(classState.classRef!),\n ]),\n ),\n );\n }\n\n const isStrict = path.isInStrictMode();\n let constructorOnly = body.length === 0;\n if (constructorOnly && !isStrict) {\n for (const param of classState.construct!.params) {\n // It's illegal to put a use strict directive into the body of a function\n // with non-simple parameters for some reason. So, we have to use a strict\n // wrapper function.\n if (!t.isIdentifier(param)) {\n constructorOnly = false;\n break;\n }\n }\n }\n\n const directives = constructorOnly\n ? classState.construct!.body.directives\n : [];\n if (!isStrict) {\n directives.push(t.directive(t.directiveLiteral(\"use strict\")));\n }\n\n if (constructorOnly) {\n // named class with only a constructor\n const expr = t.toExpression(classState.construct!);\n return classState.isLoose ? expr : createClassHelper([expr]);\n }\n\n if (!classState.pushedCreateClass) {\n body.push(\n t.returnStatement(\n classState.isLoose\n ? t.cloneNode(classState.classRef)\n : createClassHelper([t.cloneNode(classState.classRef!)]),\n ),\n );\n }\n\n body.unshift(classState.construct!);\n\n const container = t.arrowFunctionExpression(\n closureParams,\n t.blockStatement(body, directives),\n );\n return t.callExpression(container, closureArgs);\n }\n\n return classTransformer(path, file, builtinClasses, isLoose);\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { types as t } from \"@babel/core\";\nimport globalsBrowserUpper from \"@babel/helper-globals/data/browser-upper.json\" with { type: \"json\" };\nimport globalsBuiltinUpper from \"@babel/helper-globals/data/builtin-upper.json\" with { type: \"json\" };\nimport transformClass from \"./transformClass.ts\";\n\nconst builtinClasses = new Set([\n ...globalsBrowserUpper,\n ...globalsBuiltinUpper,\n]);\n\n// The \"Iterator\" global is removed because the Babel construct helper\n// packages/babel-helpers/src/helpers/construct.ts, emitted from the wrapNativeSuper helper,\n// // will invoke it with `new Iterator()` when native Reflect.construct is not available.\n// However, the abstract class Iterator can not be invoked with new. Since the `builtinClasses`\n// is used for the superIsCallableConstructor assumption, we should prioritize the spec mode\nbuiltinClasses.delete(\"Iterator\");\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { loose = false } = options;\n\n const setClassMethods = api.assumption(\"setClassMethods\") ?? loose;\n const constantSuper = api.assumption(\"constantSuper\") ?? loose;\n const superIsCallableConstructor =\n api.assumption(\"superIsCallableConstructor\") ?? loose;\n const noClassCalls = api.assumption(\"noClassCalls\") ?? loose;\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n // todo: investigate traversal requeueing\n const VISITED = new WeakSet();\n\n return {\n name: \"transform-classes\",\n\n visitor: {\n ExportDefaultDeclaration(path) {\n if (!path.get(\"declaration\").isClassDeclaration()) return;\n\n path.splitExportDeclaration();\n },\n ClassDeclaration(path) {\n const { node } = path;\n\n const ref = node.id\n ? t.cloneNode(node.id)\n : path.scope.generateUidIdentifier(\"class\");\n\n path.replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]),\n );\n },\n\n ClassExpression(path, state) {\n const { node } = path;\n if (VISITED.has(node)) return;\n\n const replacement = path.ensureFunctionName(supportUnicodeId);\n if (replacement && replacement.node !== node) return;\n\n VISITED.add(node);\n\n const [replacedPath] = path.replaceWith(\n transformClass(\n path,\n state.file,\n builtinClasses,\n loose,\n {\n setClassMethods,\n constantSuper,\n superIsCallableConstructor,\n noClassCalls,\n },\n supportUnicodeId,\n ),\n );\n\n if (replacedPath.isCallExpression()) {\n annotateAsPure(replacedPath);\n const callee = replacedPath.get(\"callee\");\n if (callee.isArrowFunctionExpression()) {\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n }\n }\n },\n },\n };\n});\n"],"names":["helper","template","statement","helperIDs","WeakMap","addCallSuperHelper","file","has","t","cloneNode","get","addHelper","id","scope","generateUidIdentifier","set","fn","CALL_SUPER","GET_PROTOTYPE_OF","POSSIBLE_CONSTRUCTOR_RETURN","fnPath","path","unshiftContainer","registerDeclaration","buildConstructor","classRef","constructorBody","node","func","functionDeclaration","inherits","transformClass","builtinClasses","isLoose","assumptions","supportUnicodeId","classState","parent","undefined","classId","superName","superReturns","isDerived","extendsNative","construct","userConstructor","userConstructorPath","hasConstructor","body","superThises","pushedInherits","pushedCreateClass","protoAlias","dynamicKeys","Map","methods","instance","hasComputed","list","map","static","setState","newState","Object","assign","findThisesVisitor","visitors","environmentVisitor","ThisExpression","push","createClassHelper","args","callExpression","maybeCreateConstructor","classBodyPath","isClassMethod","kind","params","ast","blockStatement","classMethod","identifier","buildBody","pushBody","verifyConstructor","pushDescriptors","classBodyPaths","isClassProperty","isClassPrivateProperty","buildCodeFrameError","decorators","isConstructor","replaceSupers","ReplaceSupers","methodPath","objectRef","superRef","constantSuper","refToPreserve","replace","traverse","ReturnStatement","getFunctionParent","isArrowFunctionExpression","pushConstructor","ensureFunctionName","wrapped","replaceWith","pushMethod","pushInheritsToBody","props","placement","length","desc","obj","objectExpression","objectProperty","key","properties","arrayExpression","nullLiteral","lastNonNullIndex","i","isNullLiteral","slice","returnStatement","wrapSuperCall","bareSuper","thisRef","bareSuperNode","call","superIsCallableConstructor","arguments","unshift","thisExpression","isSpreadElement","isIdentifier","argument","name","callee","memberExpression","logicalExpression","bareSuperNodeArguments","parentPath","isExpressionStatement","container","assignmentExpression","maxGuaranteedSuperBeforeIndex","ref","generateDeclaredUidIdentifier","buildAssertThisInitialized","bareSupers","Super","isCallExpression","lastParentPath","find","Math","min","type","left","isConditional","test","object","guaranteedCalls","Set","thisPath","isMemberExpression","thisIndex","exprPath","isSequenceExpression","listKey","isOptionalCallExpression","add","wrapReturn","returnArg","thisExpr","returnParams","bodyPaths","guaranteedSuperBeforeFinish","pop","isReturnStatement","pushContainer","returnPath","processMethod","descKey","isNumericLiteral","isBigIntLiteral","stringLiteral","String","value","toComputedKey","isStringLiteral","toExpression","descriptor","setClassMethods","insertProtoAliasOnce","methodName","computed","isLiteral","functionExpression","generator","async","expr","expressionStatement","inheritsComments","classProto","protoDeclaration","variableDeclaration","variableDeclarator","method","directives","hasInstanceDescriptors","hasStaticDescriptors","extractDynamicKeys","elem","isPure","generateUidIdentifierBasedOnNode","setupClosureParamsArgs","closureParams","closureArgs","arg","annotateAsPure","param","classTransformer","superClass","hasBinding","noClassCalls","isStrict","isInStrictMode","constructorOnly","directive","directiveLiteral","arrowFunctionExpression","globalsBrowserUpper","globalsBuiltinUpper","delete","declare","api","options","assertVersion","loose","assumption","isRequired","targets","VISITED","WeakSet","visitor","ExportDefaultDeclaration","isClassDeclaration","splitExportDeclaration","ClassDeclaration","ClassExpression","state","replacement","replacedPath","arrowFunctionToExpression"],"mappings":"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"} |
+10
-10
| { | ||
| "name": "@babel/plugin-transform-classes", | ||
| "version": "8.0.0-rc.2", | ||
| "version": "8.0.0-rc.3", | ||
| "description": "Compile ES2015 classes to ES5", | ||
@@ -17,8 +17,8 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-annotate-as-pure": "^8.0.0-rc.2", | ||
| "@babel/helper-compilation-targets": "^8.0.0-rc.2", | ||
| "@babel/helper-globals": "^8.0.0-rc.2", | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.2", | ||
| "@babel/helper-replace-supers": "^8.0.0-rc.2", | ||
| "@babel/traverse": "^8.0.0-rc.2" | ||
| "@babel/helper-annotate-as-pure": "^8.0.0-rc.3", | ||
| "@babel/helper-compilation-targets": "^8.0.0-rc.3", | ||
| "@babel/helper-globals": "^8.0.0-rc.3", | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.3", | ||
| "@babel/helper-replace-supers": "^8.0.0-rc.3", | ||
| "@babel/traverse": "^8.0.0-rc.3" | ||
| }, | ||
@@ -29,7 +29,7 @@ "keywords": [ | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-rc.2" | ||
| "@babel/core": "^8.0.0-rc.3" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-rc.2", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.2" | ||
| "@babel/core": "^8.0.0-rc.3", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.3" | ||
| }, | ||
@@ -36,0 +36,0 @@ "engines": { |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
87715
-1.05%650
-0.15%