tahamajs/IE / Projects /front /node_modules /@babel /plugin-transform-parameters /lib /shadow-utils.js
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.buildScopeIIFE = buildScopeIIFE; | |
| exports.collectShadowedParamsNames = collectShadowedParamsNames; | |
| exports.iifeVisitor = void 0; | |
| var _core = require("@babel/core"); | |
| const iifeVisitor = exports.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() | |
| }; | |
| 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 | |
Xet Storage Details
- Size:
- 2.18 kB
- Xet hash:
- 9626f8a5bd8ce35d264ebd61cb70877d39d8ae11189ffc4321e42f7d40558daa
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.