diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2024-10-13 10:37:19 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2024-10-13 10:37:19 +0800 |
| commit | e29b244aeab08ea36fb385c7beb2ad0560217039 (patch) | |
| tree | c66b744dc29573f1acc871862937a23f1b80e6bf /node_modules/@babel/plugin-transform-destructuring/lib/index.js | |
| parent | 62c2881629e6413a8fec6d3dd092e4568e2a81dc (diff) | |
bump: @babel/cli 7.25.6 → 7.25.7, @babel/core 7.25.2 → 7.25.8, @babel/preset-env 7.25.4 → 7.25.8, postcss 8.4.41 → 8.4.47, swup 4.7.0 → 4.8.1
Diffstat (limited to 'node_modules/@babel/plugin-transform-destructuring/lib/index.js')
| -rw-r--r-- | node_modules/@babel/plugin-transform-destructuring/lib/index.js | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/node_modules/@babel/plugin-transform-destructuring/lib/index.js b/node_modules/@babel/plugin-transform-destructuring/lib/index.js index 6f9c2169..1f1a8460 100644 --- a/node_modules/@babel/plugin-transform-destructuring/lib/index.js +++ b/node_modules/@babel/plugin-transform-destructuring/lib/index.js @@ -105,7 +105,39 @@ class DestructuringTransformer { if (this.iterableIsArray || core.types.isIdentifier(node) && this.arrayRefSet.has(node.name)) { return node; } else { - return this.scope.toArray(node, count, this.arrayLikeIsIterable); + const { + scope, + arrayLikeIsIterable + } = this; + if (core.types.isIdentifier(node)) { + const binding = scope.getBinding(node.name); + if (binding != null && binding.constant && binding.path.isGenericType("Array")) { + return node; + } + } + if (core.types.isArrayExpression(node)) { + return node; + } + if (core.types.isIdentifier(node, { + name: "arguments" + })) { + return core.template.expression.ast` + Array.prototype.slice.call(${node}) + `; + } + let helperName; + const args = [node]; + if (typeof count === "number") { + args.push(core.types.numericLiteral(count)); + helperName = "slicedToArray"; + } else { + helperName = "toArray"; + } + if (arrayLikeIsIterable) { + args.unshift(scope.path.hub.addHelper(helperName)); + helperName = "maybeArrayLike"; + } + return core.types.callExpression(scope.path.hub.addHelper(helperName), args); } } pushAssignmentPattern({ |
