diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:31:11 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:31:11 +0800 |
| commit | aa773172311dcada759dfbaac485f4bc6e00bc21 (patch) | |
| tree | ca6d9a5eff3ab8f689f9acb4f0df791d9486813d /node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js | |
| parent | c5a5384e846f242e901e859fe600d695d8990a9a (diff) | |
added babel
Diffstat (limited to 'node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js')
| -rw-r--r-- | node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js new file mode 100644 index 00000000..0b85a50f --- /dev/null +++ b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js @@ -0,0 +1,65 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildScopeIIFE = buildScopeIIFE; +exports.collectShadowedParamsNames = collectShadowedParamsNames; +exports.iifeVisitor = void 0; +var _core = require("@babel/core"); +const iifeVisitor = { + "ReferencedIdentifier|BindingIdentifier"(path, state) { + const { + scope, + node + } = path; + const { + name + } = node; + if (name === "eval" || scope.getBinding(name) === state.scope.parent.getBinding(name) && state.scope.hasOwnBinding(name)) { + state.needsOuterBinding = true; + path.stop(); + } + }, + "TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration": path => path.skip() +}; +exports.iifeVisitor = iifeVisitor; +function collectShadowedParamsNames(param, functionScope, shadowedParams) { + for (const name of Object.keys(param.getBindingIdentifiers())) { + var _functionScope$bindin; + const constantViolations = (_functionScope$bindin = functionScope.bindings[name]) == null ? void 0 : _functionScope$bindin.constantViolations; + if (constantViolations) { + for (const redeclarator of constantViolations) { + const node = redeclarator.node; + switch (node.type) { + case "VariableDeclarator": + { + if (node.init === null) { + const declaration = redeclarator.parentPath; + if (!declaration.parentPath.isFor() || declaration.parentPath.get("body") === declaration) { + redeclarator.remove(); + break; + } + } + shadowedParams.add(name); + break; + } + case "FunctionDeclaration": + shadowedParams.add(name); + break; + } + } + } + } +} +function buildScopeIIFE(shadowedParams, body) { + const args = []; + const params = []; + for (const name of shadowedParams) { + args.push(_core.types.identifier(name)); + params.push(_core.types.identifier(name)); + } + return _core.types.returnStatement(_core.types.callExpression(_core.types.arrowFunctionExpression(params, body), args)); +} + +//# sourceMappingURL=shadow-utils.js.map |
