@babel/plugin-transform-object-rest-spread
Advanced tools
+1
-0
@@ -6,2 +6,3 @@ import * as _babel_core from '@babel/core'; | ||
| useBuiltIns?: boolean; | ||
| /** @deprecated Use the `ignoreFunctionLength`, `objectRestNoSymbols`, `pureGetters`, and `setSpreadProperties` assumptions instead. */ | ||
| loose?: boolean; | ||
@@ -8,0 +9,0 @@ } |
+4
-1
@@ -51,3 +51,6 @@ import { declare } from '@babel/helper-plugin-utils'; | ||
| const index = declare((api, opts) => { | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.4"); | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.5"); | ||
| if ("loose" in opts) { | ||
| console.warn("@babel/plugin-transform-object-rest-spread: The 'loose' option has been deprecated, " + "use the `ignoreFunctionLength`, `objectRestNoSymbols`, `pureGetters`, and `setSpreadProperties` assumptions instead (https://babeljs.io/assumptions)."); | ||
| } | ||
| const targets = api.targets(); | ||
@@ -54,0 +57,0 @@ const supportsObjectAssign = !isRequired("Object.assign", targets, { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/shouldStoreRHSInTemporaryVariable.ts","../src/compat-data.ts","../src/index.ts"],"sourcesContent":["import type { types as t } from \"@babel/core\";\n\n/**\n * This is a helper function to determine if we should create an intermediate variable\n * such that the RHS of an assignment is not duplicated.\n *\n * See https://github.com/babel/babel/pull/13711#issuecomment-914388382 for discussion\n * on further optimizations.\n */\nexport default function shouldStoreRHSInTemporaryVariable(\n node: t.LVal | t.PatternLike,\n): boolean {\n if (!node) return false;\n if (node.type === \"ArrayPattern\") {\n const nonNullElements = node.elements.filter(\n (element): element is Exclude<(typeof node.elements)[0], t.VoidPattern> =>\n element !== null && element.type !== \"VoidPattern\",\n );\n if (nonNullElements.length > 1) return true;\n else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]!);\n } else if (node.type === \"ObjectPattern\") {\n const { properties } = node;\n if (properties.length > 1) return true;\n else if (properties.length === 0) return false;\n else {\n const firstProperty = properties[0];\n if (firstProperty.type === \"ObjectProperty\") {\n // the value of the property must be an LVal\n return shouldStoreRHSInTemporaryVariable(firstProperty.value as t.LVal);\n } else {\n return shouldStoreRHSInTemporaryVariable(firstProperty);\n }\n }\n } else if (node.type === \"AssignmentPattern\") {\n return shouldStoreRHSInTemporaryVariable(node.left);\n } else if (node.type === \"RestElement\") {\n if (node.argument.type === \"Identifier\") return true;\n return shouldStoreRHSInTemporaryVariable(node.argument);\n } else {\n // node is Identifier or MemberExpression\n return false;\n }\n}\n","export default {\n \"Object.assign\": {\n chrome: \"49\",\n opera: \"36\",\n edge: \"13\",\n firefox: \"36\",\n safari: \"10\",\n node: \"6\",\n deno: \"1\",\n ios: \"10\",\n samsung: \"5\",\n opera_mobile: \"36\",\n electron: \"0.37\",\n },\n};\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { PluginPass, NodePath, Scope } from \"@babel/core\";\nimport { convertFunctionParams } from \"@babel/plugin-transform-parameters\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport shouldStoreRHSInTemporaryVariable from \"./shouldStoreRHSInTemporaryVariable.ts\";\nimport compatData from \"./compat-data.ts\";\nimport { unshiftForXStatementBody } from \"@babel/plugin-transform-destructuring\";\n\n// @babel/types <=7.3.3 counts FOO as referenced in var { x: FOO }.\n// We need to detect this bug to know if \"unused\" means 0 or 1 references.\n\nexport interface Options {\n useBuiltIns?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.0.0-0 || ^8.0.0\"));\n\n const targets = api.targets();\n const supportsObjectAssign = !isRequired(\"Object.assign\", targets, {\n compatData,\n });\n\n const { useBuiltIns = supportsObjectAssign, loose = false } = opts;\n\n if (typeof loose !== \"boolean\") {\n throw new Error(\".loose must be a boolean, or undefined\");\n }\n\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? loose;\n const objectRestNoSymbols = api.assumption(\"objectRestNoSymbols\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n const setSpreadProperties = api.assumption(\"setSpreadProperties\") ?? loose;\n\n function getExtendsHelper(\n file: PluginPass,\n ): t.MemberExpression | t.Identifier {\n return useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : file.addHelper(\"extends\");\n }\n\n function* iterateObjectRestElement(\n path: NodePath<t.LVal | t.PatternLike | t.TSParameterProperty | null>,\n ): Generator<NodePath<t.RestElement>> {\n switch (path.type) {\n case \"ArrayPattern\":\n for (const elementPath of path.get(\"elements\")) {\n if (elementPath.isRestElement()) {\n yield* iterateObjectRestElement(elementPath.get(\"argument\"));\n } else {\n yield* iterateObjectRestElement(elementPath);\n }\n }\n break;\n case \"ObjectPattern\":\n for (const propertyPath of path.get(\"properties\")) {\n if (propertyPath.isRestElement()) {\n yield propertyPath;\n } else {\n yield* iterateObjectRestElement(\n propertyPath.get(\"value\") as NodePath<t.Pattern>,\n );\n }\n }\n break;\n case \"AssignmentPattern\":\n yield* iterateObjectRestElement(path.get(\"left\"));\n break;\n default:\n break;\n }\n }\n\n function hasObjectRestElement(\n path: NodePath<t.LVal | t.PatternLike | t.TSParameterProperty>,\n ): boolean {\n const objectRestPatternIterator = iterateObjectRestElement(path);\n return !objectRestPatternIterator.next().done;\n }\n\n function visitObjectRestElements(\n path: NodePath<t.LVal | t.PatternLike>,\n visitor: (path: NodePath<t.RestElement>) => void,\n ) {\n for (const restElementPath of iterateObjectRestElement(path)) {\n visitor(restElementPath);\n }\n }\n\n function hasSpread(node: t.ObjectExpression): boolean {\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n return true;\n }\n }\n return false;\n }\n\n // returns an array of all keys of an object, and a status flag indicating if all extracted keys\n // were converted to stringLiterals or not\n // e.g. extracts {keys: [\"a\", \"b\", \"3\", ++x], allPrimitives: false }\n // from ast of {a: \"foo\", b, 3: \"bar\", [++x]: \"baz\"}\n // `allPrimitives: false` doesn't necessarily mean that there is a non-primitive, but just\n // that we are not sure.\n function extractNormalizedKeys(pattern: NodePath<t.ObjectPattern>) {\n // RestElement has been removed in createObjectRest\n const propsList: t.ObjectProperty[] = pattern\n .get(\"properties\")\n .map((p: NodePath) => p.node as t.ObjectProperty);\n\n const keys: t.Expression[] = [];\n let allPrimitives = true;\n let hasTemplateLiteral = false;\n\n for (const prop of propsList) {\n const key = prop.key;\n if (t.isIdentifier(key) && !prop.computed) {\n // since a key {a: 3} is equivalent to {\"a\": 3}, use the latter\n keys.push(t.stringLiteral(key.name));\n } else if (t.isTemplateLiteral(key)) {\n keys.push(t.cloneNode(key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(key)) {\n keys.push(\n t.stringLiteral(\n String(\n // @ts-expect-error prop.key can not be a NullLiteral\n key.value,\n ),\n ),\n );\n } else {\n // If the key is an inline memoization assignment (e.g. _key = expr),\n // use just the identifier part for the exclusion array\n if (t.isAssignmentExpression(key) && t.isIdentifier(key.left)) {\n // For inline memoized keys, use just the left side (the identifier)\n // to avoid evaluating the assignment expression multiple times\n keys.push(t.cloneNode(key.left));\n } else {\n // @ts-expect-error private name has been handled by destructuring-private\n keys.push(t.cloneNode(key));\n }\n\n // Check the original key for primitiveness\n const keyToCheck = t.isAssignmentExpression(key) ? key.right : key;\n if (\n (t.isMemberExpression(keyToCheck, { computed: false }) &&\n t.isIdentifier(keyToCheck.object, { name: \"Symbol\" })) ||\n (t.isCallExpression(keyToCheck) &&\n t.matchesPattern(keyToCheck.callee, \"Symbol.for\"))\n ) {\n // there all return a primitive\n } else {\n allPrimitives = false;\n }\n }\n }\n\n return { keys, allPrimitives, hasTemplateLiteral };\n }\n\n /**\n * Replaces computed keys that have side effects with inline memoization.\n *\n * Example: { [foo()]: x } becomes { [_temp = foo()]: x } with upfront declaration: var _temp;\n *\n * This function is called in multiple places during transformation. To avoid creating\n * duplicate temp variables, we skip properties that were already memoized inline by\n * checking if the key is an assignment expression with a UID identifier.\n */\n function replaceImpureComputedKeys(\n properties: NodePath<t.ObjectProperty>[],\n scope: Scope,\n ) {\n const tempVariableDeclarations: t.VariableDeclarator[] = [];\n\n for (const property of properties) {\n // PrivateName is handled in destructuring-private plugin\n const keyExpression = property.get(\"key\") as NodePath<t.Expression>;\n\n // Skip if already memoised (inline assignment expression with a UID)\n // This happens when inline memoization is used for nested object rest\n if (\n keyExpression.isAssignmentExpression() &&\n keyExpression.get(\"left\").isIdentifier()\n ) {\n const identName = (keyExpression.node.left as t.Identifier).name;\n // Check if it's a UID (hasUid already searches parent scopes)\n if (scope.hasUid(identName)) {\n continue;\n }\n }\n\n // Only process computed keys that have side effects (function calls, mutations, etc.)\n if (property.node.computed && !keyExpression.isPure()) {\n const tempVariableName = scope.generateUidBasedOnNode(\n keyExpression.node,\n );\n const tempVariableDeclaration = t.variableDeclarator(\n t.identifier(tempVariableName),\n keyExpression.node,\n );\n tempVariableDeclarations.push(tempVariableDeclaration);\n keyExpression.replaceWith(t.identifier(tempVariableName));\n }\n }\n\n return tempVariableDeclarations;\n }\n\n function removeUnusedExcludedKeys(path: NodePath<t.ObjectPattern>): void {\n const bindings = path.getOuterBindingIdentifierPaths();\n\n Object.keys(bindings).forEach(bindingName => {\n const bindingParentPath = bindings[bindingName].parentPath;\n if (\n path.scope.getBinding(bindingName)!.references > 0 ||\n !bindingParentPath.isObjectProperty()\n ) {\n return;\n }\n bindingParentPath.remove();\n });\n }\n\n /**\n * Finds all computed property keys in a destructuring pattern,\n * in the order they appear in the source code.\n *\n * Example: const { [a()]: { [b()]: x, ...rest }, [c()]: y } = obj\n * Returns: [a(), b(), c()] in that order\n *\n * This is needed because when nested patterns have rest elements (...rest),\n * the transformation splits them up, but need to ensure a(), b(), c()\n * are always evaluated in this exact order (left-to-right as written).\n */\n function collectComputedKeysInSourceOrder(\n destructuringPattern: NodePath<t.ObjectPattern>,\n ): NodePath<t.ObjectProperty>[] {\n const computedProperties: NodePath<t.ObjectProperty>[] = [];\n\n function visitPattern(pattern: NodePath<t.PatternLike | t.LVal>) {\n if (pattern.isObjectPattern()) {\n const properties = pattern.get(\"properties\") as NodePath<\n t.ObjectProperty | t.RestElement\n >[];\n for (const property of properties) {\n if (property.isRestElement()) continue;\n\n // If this property has a computed key like [someExpression], collect it\n if (property.node.computed) {\n computedProperties.push(property);\n }\n\n // Then look inside the property's value for more nested patterns\n const nestedPattern = property.get(\n \"value\",\n ) as NodePath<t.PatternLike>;\n visitPattern(nestedPattern as NodePath<t.PatternLike | t.LVal>);\n }\n } else if (pattern.isArrayPattern()) {\n for (const element of pattern.get(\"elements\")) {\n if (!element) continue;\n if (element.isRestElement()) {\n const restArgument = element.get(\"argument\") as NodePath<\n t.PatternLike | t.LVal\n >;\n visitPattern(restArgument);\n } else {\n visitPattern(element as NodePath<t.PatternLike | t.LVal>);\n }\n }\n } else if (pattern.isAssignmentPattern()) {\n visitPattern(pattern.get(\"left\") as NodePath<t.PatternLike | t.LVal>);\n }\n }\n\n visitPattern(\n destructuringPattern as unknown as NodePath<t.PatternLike | t.LVal>,\n );\n return computedProperties;\n }\n\n //expects path to an object pattern\n function createObjectRest(\n path: NodePath<t.ObjectPattern>,\n file: PluginPass,\n objRef: t.Identifier | t.MemberExpression,\n ): [\n t.VariableDeclarator[],\n t.AssignmentExpression[\"left\"],\n t.CallExpression,\n ] {\n const props = path.get(\"properties\");\n const last = props[props.length - 1];\n t.assertRestElement(last.node);\n const restElement = t.cloneNode(last.node);\n last.remove();\n\n const impureComputedPropertyDeclarators = replaceImpureComputedKeys(\n path.get(\"properties\") as NodePath<t.ObjectProperty>[],\n path.scope,\n );\n const { keys, allPrimitives, hasTemplateLiteral } =\n extractNormalizedKeys(path);\n\n if (keys.length === 0) {\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(getExtendsHelper(file), [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(file.addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]),\n ];\n }\n\n let keyExpression;\n if (!allPrimitives) {\n // map to toPropertyKey to handle the possible non-string values\n keyExpression = t.callExpression(\n t.memberExpression(t.arrayExpression(keys), t.identifier(\"map\")),\n [file.addHelper(\"toPropertyKey\")],\n );\n } else {\n keyExpression = t.arrayExpression(keys);\n\n if (!hasTemplateLiteral && !t.isProgram(path.scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const program = path.findParent(path => path.isProgram())!;\n const id = path.scope.generateUidIdentifier(\"excluded\");\n\n program.scope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n }\n\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(\n file.addHelper(\n `objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`,\n ),\n [t.cloneNode(objRef), keyExpression],\n ),\n ];\n }\n\n function replaceRestElement(\n parentPath: NodePath<t.Function | t.CatchClause>,\n paramPath: NodePath<\n t.Function[\"params\"][number] | t.AssignmentPattern[\"left\"] | null\n >,\n container?: t.VariableDeclaration[],\n ): void {\n if (paramPath.isAssignmentPattern()) {\n replaceRestElement(parentPath, paramPath.get(\"left\"), container);\n return;\n }\n\n if (paramPath.isArrayPattern() && hasObjectRestElement(paramPath)) {\n const elements = paramPath.get(\"elements\");\n\n for (let i = 0; i < elements.length; i++) {\n replaceRestElement(parentPath, elements[i], container);\n }\n }\n\n if (paramPath.isObjectPattern() && hasObjectRestElement(paramPath)) {\n const uid = parentPath.scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(paramPath.node, uid),\n ]);\n\n if (container) {\n container.push(declar);\n } else {\n parentPath.ensureBlock();\n (parentPath.get(\"body\") as NodePath<t.BlockStatement>).unshiftContainer(\n \"body\",\n declar,\n );\n }\n paramPath.replaceWith(t.cloneNode(uid));\n }\n }\n\n return {\n name: \"transform-object-rest-spread\",\n manipulateOptions: undefined,\n visitor: {\n // function a({ b, ...c }) {}\n Function(path) {\n const params = path.get(\"params\");\n const paramsWithRestElement = new Set<number>();\n const idsInRestParams = new Set();\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (hasObjectRestElement(param)) {\n paramsWithRestElement.add(i);\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n idsInRestParams.add(name);\n }\n }\n }\n\n // if true, a parameter exists that has an id in its initializer\n // that is also an id bound in a rest parameter\n // example: f({...R}, a = R)\n let idInRest = false;\n\n const IdentifierHandler = function (\n path: NodePath<t.Identifier>,\n functionScope: Scope,\n ) {\n const name = path.node.name;\n if (\n path.scope.getBinding(name) === functionScope.getBinding(name) &&\n idsInRestParams.has(name)\n ) {\n idInRest = true;\n path.stop();\n }\n };\n\n let i: number;\n for (i = 0; i < params.length && !idInRest; ++i) {\n const param = params[i];\n if (!paramsWithRestElement.has(i)) {\n if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {\n IdentifierHandler(param, path.scope);\n } else {\n param.traverse(\n {\n \"Scope|TypeAnnotation|TSTypeAnnotation\": path => path.skip(),\n \"ReferencedIdentifier|BindingIdentifier\": IdentifierHandler,\n },\n path.scope,\n );\n }\n }\n }\n\n if (!idInRest) {\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (paramsWithRestElement.has(i)) {\n replaceRestElement(path, param);\n }\n }\n } else {\n const shouldTransformParam = (idx: number) =>\n idx >= i - 1 || paramsWithRestElement.has(idx);\n convertFunctionParams(\n path,\n ignoreFunctionLength,\n shouldTransformParam,\n // @ts-expect-error strictFunctionTypes\n replaceRestElement,\n );\n }\n },\n\n // adapted from transform-destructuring/src/index.js#pushObjectRest\n // const { a, ...b } = c;\n VariableDeclarator(path, file) {\n if (!path.get(\"id\").isObjectPattern()) {\n return;\n }\n\n let insertionPath = path;\n const originalPath = path;\n\n /**\n * Fix for: https://github.com/babel/babel/issues/17274\n *\n * Problem: When you have nested destructuring with computed keys and rest elements:\n * const { [log(0)]: { [log(1)]: x, ...rest }, [log(2)]: y } = obj\n *\n * The functions log(0), log(1), log(2) must be called in that exact order.\n * But without this fix, the nested pattern gets processed first, causing the wrong order.\n *\n * Additionally, with default values:\n * const { [log(0)]: x = log(1), [log(2)]: y } = obj\n *\n * The order must be: log(0), then log(1) (if x is undefined), then log(2).\n *\n * Solution: Use inline memoization with assignment expressions.\n * Transform:\n * const { [log(0)]: { [log(1)]: x, ...rest }, [log(2)]: y } = obj\n * Into:\n * var _log, _log2, _log3;\n * const { [_log = log(0)]: { [_log2 = log(1)]: x, ...rest }, [_log3 = log(2)]: y } = obj\n *\n * This preserves correct evaluation order even with default values.\n */\n\n // Only memoize computed keys if there are rest elements that require this fix\n if (hasObjectRestElement(path.get(\"id\"))) {\n // Find all computed keys (like [someExpression]) in left-to-right order\n const destructuringPattern = originalPath.get(\n \"id\",\n ) as NodePath<t.ObjectPattern>;\n const propertiesWithComputedKeys =\n collectComputedKeysInSourceOrder(destructuringPattern);\n\n // For each computed key that has side effects (not a simple variable)\n for (const property of propertiesWithComputedKeys) {\n const computedKeyExpression = property.get(\n \"key\",\n ) as NodePath<t.Expression>;\n\n // Skip if already memoised (assignment expression with a UID)\n if (\n computedKeyExpression.isAssignmentExpression() &&\n computedKeyExpression.get(\"left\").isIdentifier() &&\n originalPath.scope.hasUid(\n (computedKeyExpression.node.left as t.Identifier).name,\n )\n ) {\n continue;\n }\n\n // Check if the expression has side effects (function call, ++x, etc.)\n if (!computedKeyExpression.isPure()) {\n // Create a temporary variable identifier\n const tempVariableName =\n originalPath.scope.generateUidBasedOnNode(\n computedKeyExpression.node,\n );\n const tempIdentifier = t.identifier(tempVariableName);\n\n // Declare the variable upfront with no initializer (var declaration)\n originalPath.scope.push({\n id: tempIdentifier,\n kind: \"var\",\n });\n\n // Replace [log(0)] with [_key = log(0)] for inline memoization\n computedKeyExpression.replaceWith(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(tempIdentifier),\n computedKeyExpression.node,\n ),\n );\n }\n }\n }\n\n visitObjectRestElements(path.get(\"id\"), path => {\n if (\n // skip single-property case, e.g.\n // const { ...x } = foo();\n // since the RHS will not be duplicated\n shouldStoreRHSInTemporaryVariable(originalPath.node.id) &&\n !t.isIdentifier(originalPath.node.init)\n ) {\n // const { a, ...b } = foo();\n // to avoid calling foo() twice, as a first step convert it to:\n // const _foo = foo(),\n // { a, ...b } = _foo;\n const initRef = path.scope.generateUidIdentifierBasedOnNode(\n originalPath.node.init,\n \"ref\",\n );\n // insert _foo = foo()\n originalPath.insertBefore(\n t.variableDeclarator(initRef, originalPath.node.init),\n );\n // replace foo() with _foo\n originalPath.replaceWith(\n t.variableDeclarator(originalPath.node.id, t.cloneNode(initRef)),\n );\n\n return;\n }\n\n let ref = originalPath.node.init;\n const refPropertyPath: NodePath<t.ObjectProperty>[] = [];\n let kind: \"const\" | \"let\" | \"var\" | undefined;\n\n path.findParent((path: NodePath): boolean => {\n if (path.isObjectProperty()) {\n refPropertyPath.unshift(path);\n } else if (path.isVariableDeclarator()) {\n kind = path.parentPath.node.kind as \"const\" | \"let\" | \"var\";\n return true;\n }\n return false;\n });\n\n const impureObjRefComputedDeclarators = replaceImpureComputedKeys(\n refPropertyPath,\n path.scope,\n );\n refPropertyPath.forEach(prop => {\n // Get the current key (which may have been transformed to an inline assignment)\n const keyPath = prop.get(\"key\") as NodePath<t.Expression>;\n let keyForMemberExpression: t.Expression = keyPath.node;\n\n // If the key is an inline memoization assignment, use just the identifier\n if (t.isAssignmentExpression(keyPath.node)) {\n // For inline memoized keys, extract just the left side (the identifier)\n // to avoid re-evaluating the assignment expression\n keyForMemberExpression = keyPath.node.left as t.Expression;\n }\n\n ref = t.memberExpression(\n ref!,\n t.cloneNode(keyForMemberExpression),\n prop.node.computed || t.isLiteral(keyPath.node),\n );\n });\n\n const objectPatternPath =\n path.parentPath as NodePath<t.ObjectPattern>;\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(\n objectPatternPath,\n file,\n ref as t.MemberExpression,\n );\n\n if (pureGetters) {\n removeUnusedExcludedKeys(objectPatternPath);\n }\n\n t.assertIdentifier(argument);\n\n insertionPath.insertBefore(impureComputedPropertyDeclarators);\n\n insertionPath.insertBefore(impureObjRefComputedDeclarators);\n\n insertionPath = insertionPath.insertAfter(\n t.variableDeclarator(argument, callExpression),\n )[0];\n\n path.scope.registerBinding(kind!, insertionPath);\n\n if (objectPatternPath.node.properties.length === 0) {\n objectPatternPath\n .findParent(\n path => path.isObjectProperty() || path.isVariableDeclarator(),\n )!\n .remove();\n }\n });\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n // export var { a, ...b } = c;\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n\n const hasRest = declaration\n .get(\"declarations\")\n .some(path => hasObjectRestElement(path.get(\"id\")));\n if (!hasRest) return;\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n\n path.splitExportDeclaration();\n },\n // try {} catch ({a, ...b}) {}\n CatchClause(path) {\n const paramPath = path.get(\"param\");\n replaceRestElement(path, paramPath);\n },\n\n // ({a, ...b} = c);\n AssignmentExpression(path, file) {\n const leftPath = path.get(\"left\");\n if (leftPath.isObjectPattern() && hasObjectRestElement(leftPath)) {\n const nodes = [];\n\n const refName = path.scope.generateUidBasedOnNode(\n path.node.right,\n \"ref\",\n );\n\n nodes.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(refName), path.node.right),\n ]),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(leftPath, file, t.identifier(refName));\n\n if (impureComputedPropertyDeclarators.length > 0) {\n nodes.push(\n t.variableDeclaration(\"var\", impureComputedPropertyDeclarators),\n );\n }\n\n const nodeWithoutSpread = t.cloneNode(path.node);\n nodeWithoutSpread.right = t.identifier(refName);\n nodes.push(t.expressionStatement(nodeWithoutSpread));\n nodes.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", argument, callExpression),\n ),\n );\n nodes.push(t.expressionStatement(t.identifier(refName)));\n\n path.replaceWithMultiple(nodes);\n }\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n ForXStatement(path: NodePath<t.ForXStatement>) {\n const { node, scope } = path;\n const leftPath = path.get(\"left\");\n\n if (!leftPath.isVariableDeclaration()) {\n if (!hasObjectRestElement(leftPath)) {\n return;\n }\n // for ({a, ...b} of []) {}\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n\n const statementBody = (path.node.body as t.BlockStatement).body;\n const nodes = [];\n // todo: the completion of a for statement can only be observed from\n // a do block (or eval that we don't support),\n // but the new do-expression proposal plans to ban iteration ends in the\n // do block, maybe we can get rid of this\n if (statementBody.length === 0 && path.isCompletionRecord()) {\n nodes.unshift(t.expressionStatement(t.buildUndefinedNode()));\n }\n\n nodes.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", leftPath.node, t.cloneNode(temp)),\n ),\n );\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n return;\n } else {\n // for (var {a, ...b} of []) {}\n const patternPath = leftPath.get(\"declarations\")[0].get(\"id\");\n if (!hasObjectRestElement(patternPath)) {\n return;\n }\n const left = leftPath.node;\n const pattern = patternPath.node;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n path.ensureBlock();\n\n unshiftForXStatementBody(path, [\n t.variableDeclaration(node.left.kind, [\n t.variableDeclarator(pattern, t.cloneNode(key)),\n ]),\n ]);\n scope.crawl();\n return;\n }\n },\n\n // [{a, ...b}] = c;\n ArrayPattern(path) {\n type LhsAndRhs = { left: t.ObjectPattern; right: t.Identifier };\n const objectPatterns: LhsAndRhs[] = [];\n const { scope } = path;\n const uidIdentifiers: t.Identifier[] = [];\n\n visitObjectRestElements(path, path => {\n const objectPattern = path.parentPath as NodePath<t.ObjectPattern>;\n\n const uid = scope.generateUidIdentifier(\"ref\");\n objectPatterns.push({ left: objectPattern.node, right: uid });\n uidIdentifiers.push(uid);\n\n objectPattern.replaceWith(t.cloneNode(uid));\n path.skip();\n });\n\n if (objectPatterns.length > 0) {\n const patternParentPath = path.findParent(\n path => !(path.isPattern() || path.isObjectProperty()),\n )!;\n const patternParent = patternParentPath.node;\n switch (patternParent.type) {\n case \"VariableDeclarator\":\n patternParentPath.insertAfter(\n objectPatterns.map(({ left, right }) =>\n t.variableDeclarator(left, right),\n ),\n );\n break;\n case \"AssignmentExpression\":\n {\n for (const uidIdentifier of uidIdentifiers) {\n scope.push({ id: t.cloneNode(uidIdentifier) });\n }\n patternParentPath.insertAfter(\n objectPatterns.map(({ left, right }) =>\n t.assignmentExpression(\"=\", left, right),\n ),\n );\n }\n break;\n default:\n throw new Error(\n `Unexpected pattern parent type: ${patternParent.type}`,\n );\n }\n }\n },\n\n // var a = { ...b, ...c }\n ObjectExpression(path, file) {\n if (!hasSpread(path.node)) return;\n\n let helper: t.Identifier | t.MemberExpression;\n if (setSpreadProperties) {\n helper = getExtendsHelper(file);\n } else {\n helper = file.addHelper(\"objectSpread2\");\n }\n\n let exp: t.CallExpression | null = null;\n let props: t.ObjectMember[] = [];\n\n function make() {\n const hadProps = props.length > 0;\n const obj = t.objectExpression(props);\n props = [];\n\n if (!exp) {\n exp = t.callExpression(helper, [obj]);\n return;\n }\n\n // When we can assume that getters are pure and don't depend on\n // the order of evaluation, we can avoid making multiple calls.\n if (pureGetters) {\n if (hadProps) {\n exp.arguments.push(obj);\n }\n return;\n }\n\n exp = t.callExpression(t.cloneNode(helper), [\n exp,\n // If we have static props, we need to insert an empty object\n // because the odd arguments are copied with [[Get]], not\n // [[GetOwnProperty]]\n ...(hadProps ? [t.objectExpression([]), obj] : []),\n ]);\n }\n\n for (const prop of path.node.properties) {\n if (t.isSpreadElement(prop)) {\n make();\n exp!.arguments.push(prop.argument);\n } else {\n props.push(prop);\n }\n }\n\n if (props.length) make();\n\n path.replaceWith(exp!);\n },\n },\n };\n});\n"],"names":["shouldStoreRHSInTemporaryVariable","node","type","nonNullElements","elements","filter","element","length","properties","firstProperty","value","left","argument","chrome","opera","edge","firefox","safari","deno","ios","samsung","opera_mobile","electron","declare","api","opts","assertVersion","targets","supportsObjectAssign","isRequired","compatData","useBuiltIns","loose","Error","ignoreFunctionLength","assumption","objectRestNoSymbols","pureGetters","setSpreadProperties","getExtendsHelper","file","t","memberExpression","identifier","addHelper","iterateObjectRestElement","path","elementPath","get","isRestElement","propertyPath","hasObjectRestElement","objectRestPatternIterator","next","done","visitObjectRestElements","visitor","restElementPath","hasSpread","prop","isSpreadElement","extractNormalizedKeys","pattern","propsList","map","p","keys","allPrimitives","hasTemplateLiteral","key","isIdentifier","computed","push","stringLiteral","name","isTemplateLiteral","cloneNode","isLiteral","String","isAssignmentExpression","keyToCheck","right","isMemberExpression","object","isCallExpression","matchesPattern","callee","replaceImpureComputedKeys","scope","tempVariableDeclarations","property","keyExpression","identName","hasUid","isPure","tempVariableName","generateUidBasedOnNode","tempVariableDeclaration","variableDeclarator","replaceWith","removeUnusedExcludedKeys","bindings","getOuterBindingIdentifierPaths","Object","forEach","bindingName","bindingParentPath","parentPath","getBinding","references","isObjectProperty","remove","collectComputedKeysInSourceOrder","destructuringPattern","computedProperties","visitPattern","isObjectPattern","nestedPattern","isArrayPattern","restArgument","isAssignmentPattern","createObjectRest","objRef","props","last","assertRestElement","restElement","impureComputedPropertyDeclarators","callExpression","objectExpression","sequenceExpression","arrayExpression","isProgram","block","program","findParent","id","generateUidIdentifier","init","kind","replaceRestElement","paramPath","container","i","uid","declar","variableDeclaration","ensureBlock","unshiftContainer","manipulateOptions","undefined","Function","params","paramsWithRestElement","Set","idsInRestParams","param","add","getBindingIdentifiers","idInRest","IdentifierHandler","functionScope","has","stop","isReferencedIdentifier","isBindingIdentifier","traverse","skip","shouldTransformParam","idx","convertFunctionParams","VariableDeclarator","insertionPath","originalPath","propertiesWithComputedKeys","computedKeyExpression","tempIdentifier","assignmentExpression","initRef","generateUidIdentifierBasedOnNode","insertBefore","ref","refPropertyPath","unshift","isVariableDeclarator","impureObjRefComputedDeclarators","keyPath","keyForMemberExpression","objectPatternPath","assertIdentifier","insertAfter","registerBinding","ExportNamedDeclaration","declaration","isVariableDeclaration","hasRest","some","splitExportDeclaration","CatchClause","AssignmentExpression","leftPath","nodes","refName","nodeWithoutSpread","expressionStatement","replaceWithMultiple","ForXStatement","temp","statementBody","body","isCompletionRecord","buildUndefinedNode","unshiftForXStatementBody","crawl","patternPath","ArrayPattern","objectPatterns","uidIdentifiers","objectPattern","patternParentPath","isPattern","patternParent","uidIdentifier","ObjectExpression","helper","exp","make","hadProps","obj","arguments"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../src/shouldStoreRHSInTemporaryVariable.ts","../src/compat-data.ts","../src/index.ts"],"sourcesContent":["import type { types as t } from \"@babel/core\";\n\n/**\n * This is a helper function to determine if we should create an intermediate variable\n * such that the RHS of an assignment is not duplicated.\n *\n * See https://github.com/babel/babel/pull/13711#issuecomment-914388382 for discussion\n * on further optimizations.\n */\nexport default function shouldStoreRHSInTemporaryVariable(\n node: t.LVal | t.PatternLike,\n): boolean {\n if (!node) return false;\n if (node.type === \"ArrayPattern\") {\n const nonNullElements = node.elements.filter(\n (element): element is Exclude<(typeof node.elements)[0], t.VoidPattern> =>\n element !== null && element.type !== \"VoidPattern\",\n );\n if (nonNullElements.length > 1) return true;\n else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]!);\n } else if (node.type === \"ObjectPattern\") {\n const { properties } = node;\n if (properties.length > 1) return true;\n else if (properties.length === 0) return false;\n else {\n const firstProperty = properties[0];\n if (firstProperty.type === \"ObjectProperty\") {\n // the value of the property must be an LVal\n return shouldStoreRHSInTemporaryVariable(firstProperty.value as t.LVal);\n } else {\n return shouldStoreRHSInTemporaryVariable(firstProperty);\n }\n }\n } else if (node.type === \"AssignmentPattern\") {\n return shouldStoreRHSInTemporaryVariable(node.left);\n } else if (node.type === \"RestElement\") {\n if (node.argument.type === \"Identifier\") return true;\n return shouldStoreRHSInTemporaryVariable(node.argument);\n } else {\n // node is Identifier or MemberExpression\n return false;\n }\n}\n","export default {\n \"Object.assign\": {\n chrome: \"49\",\n opera: \"36\",\n edge: \"13\",\n firefox: \"36\",\n safari: \"10\",\n node: \"6\",\n deno: \"1\",\n ios: \"10\",\n samsung: \"5\",\n opera_mobile: \"36\",\n electron: \"0.37\",\n },\n};\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { PluginPass, NodePath, Scope } from \"@babel/core\";\nimport { convertFunctionParams } from \"@babel/plugin-transform-parameters\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport shouldStoreRHSInTemporaryVariable from \"./shouldStoreRHSInTemporaryVariable.ts\";\nimport compatData from \"./compat-data.ts\";\nimport { unshiftForXStatementBody } from \"@babel/plugin-transform-destructuring\";\n\n// @babel/types <=7.3.3 counts FOO as referenced in var { x: FOO }.\n// We need to detect this bug to know if \"unused\" means 0 or 1 references.\n\nexport interface Options {\n useBuiltIns?: boolean;\n /** @deprecated Use the `ignoreFunctionLength`, `objectRestNoSymbols`, `pureGetters`, and `setSpreadProperties` assumptions instead. */\n loose?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.0.0-0 || ^8.0.0\"));\n\n if (\"loose\" in opts) {\n console.warn(\n \"@babel/plugin-transform-object-rest-spread: The 'loose' option has been deprecated, \" +\n \"use the `ignoreFunctionLength`, `objectRestNoSymbols`, `pureGetters`, and `setSpreadProperties` assumptions instead (https://babeljs.io/assumptions).\",\n );\n }\n\n const targets = api.targets();\n const supportsObjectAssign = !isRequired(\"Object.assign\", targets, {\n compatData,\n });\n\n const { useBuiltIns = supportsObjectAssign, loose = false } = opts;\n\n if (typeof loose !== \"boolean\") {\n throw new Error(\".loose must be a boolean, or undefined\");\n }\n\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? loose;\n const objectRestNoSymbols = api.assumption(\"objectRestNoSymbols\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n const setSpreadProperties = api.assumption(\"setSpreadProperties\") ?? loose;\n\n function getExtendsHelper(\n file: PluginPass,\n ): t.MemberExpression | t.Identifier {\n return useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : file.addHelper(\"extends\");\n }\n\n function* iterateObjectRestElement(\n path: NodePath<t.LVal | t.PatternLike | t.TSParameterProperty | null>,\n ): Generator<NodePath<t.RestElement>> {\n switch (path.type) {\n case \"ArrayPattern\":\n for (const elementPath of path.get(\"elements\")) {\n if (elementPath.isRestElement()) {\n yield* iterateObjectRestElement(elementPath.get(\"argument\"));\n } else {\n yield* iterateObjectRestElement(elementPath);\n }\n }\n break;\n case \"ObjectPattern\":\n for (const propertyPath of path.get(\"properties\")) {\n if (propertyPath.isRestElement()) {\n yield propertyPath;\n } else {\n yield* iterateObjectRestElement(\n propertyPath.get(\"value\") as NodePath<t.Pattern>,\n );\n }\n }\n break;\n case \"AssignmentPattern\":\n yield* iterateObjectRestElement(path.get(\"left\"));\n break;\n default:\n break;\n }\n }\n\n function hasObjectRestElement(\n path: NodePath<t.LVal | t.PatternLike | t.TSParameterProperty>,\n ): boolean {\n const objectRestPatternIterator = iterateObjectRestElement(path);\n return !objectRestPatternIterator.next().done;\n }\n\n function visitObjectRestElements(\n path: NodePath<t.LVal | t.PatternLike>,\n visitor: (path: NodePath<t.RestElement>) => void,\n ) {\n for (const restElementPath of iterateObjectRestElement(path)) {\n visitor(restElementPath);\n }\n }\n\n function hasSpread(node: t.ObjectExpression): boolean {\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n return true;\n }\n }\n return false;\n }\n\n // returns an array of all keys of an object, and a status flag indicating if all extracted keys\n // were converted to stringLiterals or not\n // e.g. extracts {keys: [\"a\", \"b\", \"3\", ++x], allPrimitives: false }\n // from ast of {a: \"foo\", b, 3: \"bar\", [++x]: \"baz\"}\n // `allPrimitives: false` doesn't necessarily mean that there is a non-primitive, but just\n // that we are not sure.\n function extractNormalizedKeys(pattern: NodePath<t.ObjectPattern>) {\n // RestElement has been removed in createObjectRest\n const propsList: t.ObjectProperty[] = pattern\n .get(\"properties\")\n .map((p: NodePath) => p.node as t.ObjectProperty);\n\n const keys: t.Expression[] = [];\n let allPrimitives = true;\n let hasTemplateLiteral = false;\n\n for (const prop of propsList) {\n const key = prop.key;\n if (t.isIdentifier(key) && !prop.computed) {\n // since a key {a: 3} is equivalent to {\"a\": 3}, use the latter\n keys.push(t.stringLiteral(key.name));\n } else if (t.isTemplateLiteral(key)) {\n keys.push(t.cloneNode(key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(key)) {\n keys.push(\n t.stringLiteral(\n String(\n // @ts-expect-error prop.key can not be a NullLiteral\n key.value,\n ),\n ),\n );\n } else {\n // If the key is an inline memoization assignment (e.g. _key = expr),\n // use just the identifier part for the exclusion array\n if (t.isAssignmentExpression(key) && t.isIdentifier(key.left)) {\n // For inline memoized keys, use just the left side (the identifier)\n // to avoid evaluating the assignment expression multiple times\n keys.push(t.cloneNode(key.left));\n } else {\n // @ts-expect-error private name has been handled by destructuring-private\n keys.push(t.cloneNode(key));\n }\n\n // Check the original key for primitiveness\n const keyToCheck = t.isAssignmentExpression(key) ? key.right : key;\n if (\n (t.isMemberExpression(keyToCheck, { computed: false }) &&\n t.isIdentifier(keyToCheck.object, { name: \"Symbol\" })) ||\n (t.isCallExpression(keyToCheck) &&\n t.matchesPattern(keyToCheck.callee, \"Symbol.for\"))\n ) {\n // there all return a primitive\n } else {\n allPrimitives = false;\n }\n }\n }\n\n return { keys, allPrimitives, hasTemplateLiteral };\n }\n\n /**\n * Replaces computed keys that have side effects with inline memoization.\n *\n * Example: { [foo()]: x } becomes { [_temp = foo()]: x } with upfront declaration: var _temp;\n *\n * This function is called in multiple places during transformation. To avoid creating\n * duplicate temp variables, we skip properties that were already memoized inline by\n * checking if the key is an assignment expression with a UID identifier.\n */\n function replaceImpureComputedKeys(\n properties: NodePath<t.ObjectProperty>[],\n scope: Scope,\n ) {\n const tempVariableDeclarations: t.VariableDeclarator[] = [];\n\n for (const property of properties) {\n // PrivateName is handled in destructuring-private plugin\n const keyExpression = property.get(\"key\") as NodePath<t.Expression>;\n\n // Skip if already memoised (inline assignment expression with a UID)\n // This happens when inline memoization is used for nested object rest\n if (\n keyExpression.isAssignmentExpression() &&\n keyExpression.get(\"left\").isIdentifier()\n ) {\n const identName = (keyExpression.node.left as t.Identifier).name;\n // Check if it's a UID (hasUid already searches parent scopes)\n if (scope.hasUid(identName)) {\n continue;\n }\n }\n\n // Only process computed keys that have side effects (function calls, mutations, etc.)\n if (property.node.computed && !keyExpression.isPure()) {\n const tempVariableName = scope.generateUidBasedOnNode(\n keyExpression.node,\n );\n const tempVariableDeclaration = t.variableDeclarator(\n t.identifier(tempVariableName),\n keyExpression.node,\n );\n tempVariableDeclarations.push(tempVariableDeclaration);\n keyExpression.replaceWith(t.identifier(tempVariableName));\n }\n }\n\n return tempVariableDeclarations;\n }\n\n function removeUnusedExcludedKeys(path: NodePath<t.ObjectPattern>): void {\n const bindings = path.getOuterBindingIdentifierPaths();\n\n Object.keys(bindings).forEach(bindingName => {\n const bindingParentPath = bindings[bindingName].parentPath;\n if (\n path.scope.getBinding(bindingName)!.references > 0 ||\n !bindingParentPath.isObjectProperty()\n ) {\n return;\n }\n bindingParentPath.remove();\n });\n }\n\n /**\n * Finds all computed property keys in a destructuring pattern,\n * in the order they appear in the source code.\n *\n * Example: const { [a()]: { [b()]: x, ...rest }, [c()]: y } = obj\n * Returns: [a(), b(), c()] in that order\n *\n * This is needed because when nested patterns have rest elements (...rest),\n * the transformation splits them up, but need to ensure a(), b(), c()\n * are always evaluated in this exact order (left-to-right as written).\n */\n function collectComputedKeysInSourceOrder(\n destructuringPattern: NodePath<t.ObjectPattern>,\n ): NodePath<t.ObjectProperty>[] {\n const computedProperties: NodePath<t.ObjectProperty>[] = [];\n\n function visitPattern(pattern: NodePath<t.PatternLike | t.LVal>) {\n if (pattern.isObjectPattern()) {\n const properties = pattern.get(\"properties\") as NodePath<\n t.ObjectProperty | t.RestElement\n >[];\n for (const property of properties) {\n if (property.isRestElement()) continue;\n\n // If this property has a computed key like [someExpression], collect it\n if (property.node.computed) {\n computedProperties.push(property);\n }\n\n // Then look inside the property's value for more nested patterns\n const nestedPattern = property.get(\n \"value\",\n ) as NodePath<t.PatternLike>;\n visitPattern(nestedPattern);\n }\n } else if (pattern.isArrayPattern()) {\n for (const element of pattern.get(\"elements\")) {\n if (!element) continue;\n if (element.isRestElement()) {\n const restArgument = element.get(\"argument\") as NodePath<\n t.PatternLike | t.LVal\n >;\n visitPattern(restArgument);\n } else {\n visitPattern(element as NodePath<t.PatternLike | t.LVal>);\n }\n }\n } else if (pattern.isAssignmentPattern()) {\n visitPattern(pattern.get(\"left\"));\n }\n }\n\n visitPattern(destructuringPattern);\n return computedProperties;\n }\n\n //expects path to an object pattern\n function createObjectRest(\n path: NodePath<t.ObjectPattern>,\n file: PluginPass,\n objRef: t.Identifier | t.MemberExpression,\n ): [\n t.VariableDeclarator[],\n t.AssignmentExpression[\"left\"],\n t.CallExpression,\n ] {\n const props = path.get(\"properties\");\n const last = props[props.length - 1];\n t.assertRestElement(last.node);\n const restElement = t.cloneNode(last.node);\n last.remove();\n\n const impureComputedPropertyDeclarators = replaceImpureComputedKeys(\n path.get(\"properties\") as NodePath<t.ObjectProperty>[],\n path.scope,\n );\n const { keys, allPrimitives, hasTemplateLiteral } =\n extractNormalizedKeys(path);\n\n if (keys.length === 0) {\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(getExtendsHelper(file), [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(file.addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]),\n ];\n }\n\n let keyExpression;\n if (!allPrimitives) {\n // map to toPropertyKey to handle the possible non-string values\n keyExpression = t.callExpression(\n t.memberExpression(t.arrayExpression(keys), t.identifier(\"map\")),\n [file.addHelper(\"toPropertyKey\")],\n );\n } else {\n keyExpression = t.arrayExpression(keys);\n\n if (!hasTemplateLiteral && !t.isProgram(path.scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const program = path.findParent(path => path.isProgram())!;\n const id = path.scope.generateUidIdentifier(\"excluded\");\n\n program.scope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n }\n\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(\n file.addHelper(\n `objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`,\n ),\n [t.cloneNode(objRef), keyExpression],\n ),\n ];\n }\n\n function replaceRestElement(\n parentPath: NodePath<t.Function | t.CatchClause>,\n paramPath: NodePath<\n t.Function[\"params\"][number] | t.AssignmentPattern[\"left\"] | null\n >,\n container?: t.VariableDeclaration[],\n ): void {\n if (paramPath.isAssignmentPattern()) {\n replaceRestElement(parentPath, paramPath.get(\"left\"), container);\n return;\n }\n\n if (paramPath.isArrayPattern() && hasObjectRestElement(paramPath)) {\n const elements = paramPath.get(\"elements\");\n\n for (let i = 0; i < elements.length; i++) {\n replaceRestElement(parentPath, elements[i], container);\n }\n }\n\n if (paramPath.isObjectPattern() && hasObjectRestElement(paramPath)) {\n const uid = parentPath.scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(paramPath.node, uid),\n ]);\n\n if (container) {\n container.push(declar);\n } else {\n parentPath.ensureBlock();\n (parentPath.get(\"body\") as NodePath<t.BlockStatement>).unshiftContainer(\n \"body\",\n declar,\n );\n }\n paramPath.replaceWith(t.cloneNode(uid));\n }\n }\n\n return {\n name: \"transform-object-rest-spread\",\n manipulateOptions: undefined,\n visitor: {\n // function a({ b, ...c }) {}\n Function(path) {\n const params = path.get(\"params\");\n const paramsWithRestElement = new Set<number>();\n const idsInRestParams = new Set();\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (hasObjectRestElement(param)) {\n paramsWithRestElement.add(i);\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n idsInRestParams.add(name);\n }\n }\n }\n\n // if true, a parameter exists that has an id in its initializer\n // that is also an id bound in a rest parameter\n // example: f({...R}, a = R)\n let idInRest = false;\n\n const IdentifierHandler = function (\n path: NodePath<t.Identifier>,\n functionScope: Scope,\n ) {\n const name = path.node.name;\n if (\n path.scope.getBinding(name) === functionScope.getBinding(name) &&\n idsInRestParams.has(name)\n ) {\n idInRest = true;\n path.stop();\n }\n };\n\n let i: number;\n for (i = 0; i < params.length && !idInRest; ++i) {\n const param = params[i];\n if (!paramsWithRestElement.has(i)) {\n if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {\n IdentifierHandler(param, path.scope);\n } else {\n param.traverse(\n {\n \"Scope|TypeAnnotation|TSTypeAnnotation\": path => path.skip(),\n \"ReferencedIdentifier|BindingIdentifier\": IdentifierHandler,\n },\n path.scope,\n );\n }\n }\n }\n\n if (!idInRest) {\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (paramsWithRestElement.has(i)) {\n replaceRestElement(path, param);\n }\n }\n } else {\n const shouldTransformParam = (idx: number) =>\n idx >= i - 1 || paramsWithRestElement.has(idx);\n convertFunctionParams(\n path,\n ignoreFunctionLength,\n shouldTransformParam,\n // @ts-expect-error strictFunctionTypes\n replaceRestElement,\n );\n }\n },\n\n // adapted from transform-destructuring/src/index.js#pushObjectRest\n // const { a, ...b } = c;\n VariableDeclarator(path, file) {\n if (!path.get(\"id\").isObjectPattern()) {\n return;\n }\n\n let insertionPath = path;\n const originalPath = path;\n\n /**\n * Fix for: https://github.com/babel/babel/issues/17274\n *\n * Problem: When you have nested destructuring with computed keys and rest elements:\n * const { [log(0)]: { [log(1)]: x, ...rest }, [log(2)]: y } = obj\n *\n * The functions log(0), log(1), log(2) must be called in that exact order.\n * But without this fix, the nested pattern gets processed first, causing the wrong order.\n *\n * Additionally, with default values:\n * const { [log(0)]: x = log(1), [log(2)]: y } = obj\n *\n * The order must be: log(0), then log(1) (if x is undefined), then log(2).\n *\n * Solution: Use inline memoization with assignment expressions.\n * Transform:\n * const { [log(0)]: { [log(1)]: x, ...rest }, [log(2)]: y } = obj\n * Into:\n * var _log, _log2, _log3;\n * const { [_log = log(0)]: { [_log2 = log(1)]: x, ...rest }, [_log3 = log(2)]: y } = obj\n *\n * This preserves correct evaluation order even with default values.\n */\n\n // Only memoize computed keys if there are rest elements that require this fix\n if (hasObjectRestElement(path.get(\"id\"))) {\n // Find all computed keys (like [someExpression]) in left-to-right order\n const destructuringPattern = originalPath.get(\n \"id\",\n ) as NodePath<t.ObjectPattern>;\n const propertiesWithComputedKeys =\n collectComputedKeysInSourceOrder(destructuringPattern);\n\n // For each computed key that has side effects (not a simple variable)\n for (const property of propertiesWithComputedKeys) {\n const computedKeyExpression = property.get(\n \"key\",\n ) as NodePath<t.Expression>;\n\n // Skip if already memoised (assignment expression with a UID)\n if (\n computedKeyExpression.isAssignmentExpression() &&\n computedKeyExpression.get(\"left\").isIdentifier() &&\n originalPath.scope.hasUid(\n (computedKeyExpression.node.left as t.Identifier).name,\n )\n ) {\n continue;\n }\n\n // Check if the expression has side effects (function call, ++x, etc.)\n if (!computedKeyExpression.isPure()) {\n // Create a temporary variable identifier\n const tempVariableName =\n originalPath.scope.generateUidBasedOnNode(\n computedKeyExpression.node,\n );\n const tempIdentifier = t.identifier(tempVariableName);\n\n // Declare the variable upfront with no initializer (var declaration)\n originalPath.scope.push({\n id: tempIdentifier,\n kind: \"var\",\n });\n\n // Replace [log(0)] with [_key = log(0)] for inline memoization\n computedKeyExpression.replaceWith(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(tempIdentifier),\n computedKeyExpression.node,\n ),\n );\n }\n }\n }\n\n visitObjectRestElements(path.get(\"id\"), path => {\n if (\n // skip single-property case, e.g.\n // const { ...x } = foo();\n // since the RHS will not be duplicated\n shouldStoreRHSInTemporaryVariable(originalPath.node.id) &&\n !t.isIdentifier(originalPath.node.init)\n ) {\n // const { a, ...b } = foo();\n // to avoid calling foo() twice, as a first step convert it to:\n // const _foo = foo(),\n // { a, ...b } = _foo;\n const initRef = path.scope.generateUidIdentifierBasedOnNode(\n originalPath.node.init,\n \"ref\",\n );\n // insert _foo = foo()\n originalPath.insertBefore(\n t.variableDeclarator(initRef, originalPath.node.init),\n );\n // replace foo() with _foo\n originalPath.replaceWith(\n t.variableDeclarator(originalPath.node.id, t.cloneNode(initRef)),\n );\n\n return;\n }\n\n let ref = originalPath.node.init;\n const refPropertyPath: NodePath<t.ObjectProperty>[] = [];\n let kind: \"const\" | \"let\" | \"var\" | undefined;\n\n path.findParent((path: NodePath): boolean => {\n if (path.isObjectProperty()) {\n refPropertyPath.unshift(path);\n } else if (path.isVariableDeclarator()) {\n kind = path.parentPath.node.kind as \"const\" | \"let\" | \"var\";\n return true;\n }\n return false;\n });\n\n const impureObjRefComputedDeclarators = replaceImpureComputedKeys(\n refPropertyPath,\n path.scope,\n );\n refPropertyPath.forEach(prop => {\n // Get the current key (which may have been transformed to an inline assignment)\n const keyPath = prop.get(\"key\") as NodePath<t.Expression>;\n let keyForMemberExpression: t.Expression = keyPath.node;\n\n // If the key is an inline memoization assignment, use just the identifier\n if (t.isAssignmentExpression(keyPath.node)) {\n // For inline memoized keys, extract just the left side (the identifier)\n // to avoid re-evaluating the assignment expression\n keyForMemberExpression = keyPath.node.left as t.Expression;\n }\n\n ref = t.memberExpression(\n ref!,\n t.cloneNode(keyForMemberExpression),\n prop.node.computed || t.isLiteral(keyPath.node),\n );\n });\n\n const objectPatternPath =\n path.parentPath as NodePath<t.ObjectPattern>;\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(\n objectPatternPath,\n file,\n ref as t.MemberExpression,\n );\n\n if (pureGetters) {\n removeUnusedExcludedKeys(objectPatternPath);\n }\n\n t.assertIdentifier(argument);\n\n insertionPath.insertBefore(impureComputedPropertyDeclarators);\n\n insertionPath.insertBefore(impureObjRefComputedDeclarators);\n\n insertionPath = insertionPath.insertAfter(\n t.variableDeclarator(argument, callExpression),\n )[0];\n\n path.scope.registerBinding(kind!, insertionPath);\n\n if (objectPatternPath.node.properties.length === 0) {\n objectPatternPath\n .findParent(\n path => path.isObjectProperty() || path.isVariableDeclarator(),\n )!\n .remove();\n }\n });\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n // export var { a, ...b } = c;\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n\n const hasRest = declaration\n .get(\"declarations\")\n .some(path => hasObjectRestElement(path.get(\"id\")));\n if (!hasRest) return;\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n\n path.splitExportDeclaration();\n },\n // try {} catch ({a, ...b}) {}\n CatchClause(path) {\n const paramPath = path.get(\"param\");\n replaceRestElement(path, paramPath);\n },\n\n // ({a, ...b} = c);\n AssignmentExpression(path, file) {\n const leftPath = path.get(\"left\");\n if (leftPath.isObjectPattern() && hasObjectRestElement(leftPath)) {\n const nodes = [];\n\n const refName = path.scope.generateUidBasedOnNode(\n path.node.right,\n \"ref\",\n );\n\n nodes.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(refName), path.node.right),\n ]),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(leftPath, file, t.identifier(refName));\n\n if (impureComputedPropertyDeclarators.length > 0) {\n nodes.push(\n t.variableDeclaration(\"var\", impureComputedPropertyDeclarators),\n );\n }\n\n const nodeWithoutSpread = t.cloneNode(path.node);\n nodeWithoutSpread.right = t.identifier(refName);\n nodes.push(t.expressionStatement(nodeWithoutSpread));\n nodes.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", argument, callExpression),\n ),\n );\n nodes.push(t.expressionStatement(t.identifier(refName)));\n\n path.replaceWithMultiple(nodes);\n }\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n ForXStatement(path: NodePath<t.ForXStatement>) {\n const { node, scope } = path;\n const leftPath = path.get(\"left\");\n\n if (!leftPath.isVariableDeclaration()) {\n if (!hasObjectRestElement(leftPath)) {\n return;\n }\n // for ({a, ...b} of []) {}\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n\n const statementBody = (path.node.body as t.BlockStatement).body;\n const nodes = [];\n // todo: the completion of a for statement can only be observed from\n // a do block (or eval that we don't support),\n // but the new do-expression proposal plans to ban iteration ends in the\n // do block, maybe we can get rid of this\n if (statementBody.length === 0 && path.isCompletionRecord()) {\n nodes.unshift(t.expressionStatement(t.buildUndefinedNode()));\n }\n\n nodes.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", leftPath.node, t.cloneNode(temp)),\n ),\n );\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n return;\n } else {\n // for (var {a, ...b} of []) {}\n const patternPath = leftPath.get(\"declarations\")[0].get(\"id\");\n if (!hasObjectRestElement(patternPath)) {\n return;\n }\n const left = leftPath.node;\n const pattern = patternPath.node;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n path.ensureBlock();\n\n unshiftForXStatementBody(path, [\n t.variableDeclaration(node.left.kind, [\n t.variableDeclarator(pattern, t.cloneNode(key)),\n ]),\n ]);\n scope.crawl();\n return;\n }\n },\n\n // [{a, ...b}] = c;\n ArrayPattern(path) {\n type LhsAndRhs = { left: t.ObjectPattern; right: t.Identifier };\n const objectPatterns: LhsAndRhs[] = [];\n const { scope } = path;\n const uidIdentifiers: t.Identifier[] = [];\n\n visitObjectRestElements(path, path => {\n const objectPattern = path.parentPath as NodePath<t.ObjectPattern>;\n\n const uid = scope.generateUidIdentifier(\"ref\");\n objectPatterns.push({ left: objectPattern.node, right: uid });\n uidIdentifiers.push(uid);\n\n objectPattern.replaceWith(t.cloneNode(uid));\n path.skip();\n });\n\n if (objectPatterns.length > 0) {\n const patternParentPath = path.findParent(\n path => !(path.isPattern() || path.isObjectProperty()),\n )!;\n const patternParent = patternParentPath.node;\n switch (patternParent.type) {\n case \"VariableDeclarator\":\n patternParentPath.insertAfter(\n objectPatterns.map(({ left, right }) =>\n t.variableDeclarator(left, right),\n ),\n );\n break;\n case \"AssignmentExpression\":\n {\n for (const uidIdentifier of uidIdentifiers) {\n scope.push({ id: t.cloneNode(uidIdentifier) });\n }\n patternParentPath.insertAfter(\n objectPatterns.map(({ left, right }) =>\n t.assignmentExpression(\"=\", left, right),\n ),\n );\n }\n break;\n default:\n throw new Error(\n `Unexpected pattern parent type: ${patternParent.type}`,\n );\n }\n }\n },\n\n // var a = { ...b, ...c }\n ObjectExpression(path, file) {\n if (!hasSpread(path.node)) return;\n\n let helper: t.Identifier | t.MemberExpression;\n if (setSpreadProperties) {\n helper = getExtendsHelper(file);\n } else {\n helper = file.addHelper(\"objectSpread2\");\n }\n\n let exp: t.CallExpression | null = null;\n let props: t.ObjectMember[] = [];\n\n function make() {\n const hadProps = props.length > 0;\n const obj = t.objectExpression(props);\n props = [];\n\n if (!exp) {\n exp = t.callExpression(helper, [obj]);\n return;\n }\n\n // When we can assume that getters are pure and don't depend on\n // the order of evaluation, we can avoid making multiple calls.\n if (pureGetters) {\n if (hadProps) {\n exp.arguments.push(obj);\n }\n return;\n }\n\n exp = t.callExpression(t.cloneNode(helper), [\n exp,\n // If we have static props, we need to insert an empty object\n // because the odd arguments are copied with [[Get]], not\n // [[GetOwnProperty]]\n ...(hadProps ? [t.objectExpression([]), obj] : []),\n ]);\n }\n\n for (const prop of path.node.properties) {\n if (t.isSpreadElement(prop)) {\n make();\n exp!.arguments.push(prop.argument);\n } else {\n props.push(prop);\n }\n }\n\n if (props.length) make();\n\n path.replaceWith(exp!);\n },\n },\n };\n});\n"],"names":["shouldStoreRHSInTemporaryVariable","node","type","nonNullElements","elements","filter","element","length","properties","firstProperty","value","left","argument","chrome","opera","edge","firefox","safari","deno","ios","samsung","opera_mobile","electron","declare","api","opts","assertVersion","console","warn","targets","supportsObjectAssign","isRequired","compatData","useBuiltIns","loose","Error","ignoreFunctionLength","assumption","objectRestNoSymbols","pureGetters","setSpreadProperties","getExtendsHelper","file","t","memberExpression","identifier","addHelper","iterateObjectRestElement","path","elementPath","get","isRestElement","propertyPath","hasObjectRestElement","objectRestPatternIterator","next","done","visitObjectRestElements","visitor","restElementPath","hasSpread","prop","isSpreadElement","extractNormalizedKeys","pattern","propsList","map","p","keys","allPrimitives","hasTemplateLiteral","key","isIdentifier","computed","push","stringLiteral","name","isTemplateLiteral","cloneNode","isLiteral","String","isAssignmentExpression","keyToCheck","right","isMemberExpression","object","isCallExpression","matchesPattern","callee","replaceImpureComputedKeys","scope","tempVariableDeclarations","property","keyExpression","identName","hasUid","isPure","tempVariableName","generateUidBasedOnNode","tempVariableDeclaration","variableDeclarator","replaceWith","removeUnusedExcludedKeys","bindings","getOuterBindingIdentifierPaths","Object","forEach","bindingName","bindingParentPath","parentPath","getBinding","references","isObjectProperty","remove","collectComputedKeysInSourceOrder","destructuringPattern","computedProperties","visitPattern","isObjectPattern","nestedPattern","isArrayPattern","restArgument","isAssignmentPattern","createObjectRest","objRef","props","last","assertRestElement","restElement","impureComputedPropertyDeclarators","callExpression","objectExpression","sequenceExpression","arrayExpression","isProgram","block","program","findParent","id","generateUidIdentifier","init","kind","replaceRestElement","paramPath","container","i","uid","declar","variableDeclaration","ensureBlock","unshiftContainer","manipulateOptions","undefined","Function","params","paramsWithRestElement","Set","idsInRestParams","param","add","getBindingIdentifiers","idInRest","IdentifierHandler","functionScope","has","stop","isReferencedIdentifier","isBindingIdentifier","traverse","skip","shouldTransformParam","idx","convertFunctionParams","VariableDeclarator","insertionPath","originalPath","propertiesWithComputedKeys","computedKeyExpression","tempIdentifier","assignmentExpression","initRef","generateUidIdentifierBasedOnNode","insertBefore","ref","refPropertyPath","unshift","isVariableDeclarator","impureObjRefComputedDeclarators","keyPath","keyForMemberExpression","objectPatternPath","assertIdentifier","insertAfter","registerBinding","ExportNamedDeclaration","declaration","isVariableDeclaration","hasRest","some","splitExportDeclaration","CatchClause","AssignmentExpression","leftPath","nodes","refName","nodeWithoutSpread","expressionStatement","replaceWithMultiple","ForXStatement","temp","statementBody","body","isCompletionRecord","buildUndefinedNode","unshiftForXStatementBody","crawl","patternPath","ArrayPattern","objectPatterns","uidIdentifiers","objectPattern","patternParentPath","isPattern","patternParent","uidIdentifier","ObjectExpression","helper","exp","make","hadProps","obj","arguments"],"mappings":"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"} |
+10
-10
| { | ||
| "name": "@babel/plugin-transform-object-rest-spread", | ||
| "version": "8.0.0-rc.4", | ||
| "version": "8.0.0-rc.5", | ||
| "description": "Compile object rest and spread to ES5", | ||
@@ -20,17 +20,17 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-compilation-targets": "^8.0.0-rc.4", | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.4", | ||
| "@babel/plugin-transform-destructuring": "^8.0.0-rc.4", | ||
| "@babel/plugin-transform-parameters": "^8.0.0-rc.4" | ||
| "@babel/helper-compilation-targets": "^8.0.0-rc.5", | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.5", | ||
| "@babel/plugin-transform-destructuring": "^8.0.0-rc.5", | ||
| "@babel/plugin-transform-parameters": "^8.0.0-rc.5" | ||
| }, | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-rc.4" | ||
| "@babel/core": "^8.0.0-rc.5" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-rc.4", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.4", | ||
| "@babel/parser": "^8.0.0-rc.4" | ||
| "@babel/core": "^8.0.0-rc.5", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.5", | ||
| "@babel/parser": "^8.0.0-rc.5" | ||
| }, | ||
| "engines": { | ||
| "node": "^20.19.0 || >=22.12.0" | ||
| "node": "^22.18.0 || >=24.11.0" | ||
| }, | ||
@@ -37,0 +37,0 @@ "author": "The Babel Team (https://babel.dev/team)", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
86603
1.02%544
0.74%1
Infinity%