@babel/plugin-transform-parameters
Advanced tools
Comparing version 7.21.4-esm to 7.21.4-esm.1
@@ -1,17 +0,6 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
Object.defineProperty(exports, "convertFunctionParams", { | ||
enumerable: true, | ||
get: function () { | ||
return _params.default; | ||
} | ||
}); | ||
exports.default = void 0; | ||
var _helperPluginUtils = require("@babel/helper-plugin-utils"); | ||
var _params = require("./params"); | ||
var _rest = require("./rest"); | ||
var _default = (0, _helperPluginUtils.declare)((api, options) => { | ||
import { declare } from "@babel/helper-plugin-utils"; | ||
import convertFunctionParams from "./params.js"; | ||
import convertFunctionRest from "./rest.js"; | ||
export { convertFunctionParams }; | ||
export default declare((api, options) => { | ||
var _api$assumption, _api$assumption2; | ||
@@ -32,4 +21,4 @@ api.assertVersion(7); | ||
} | ||
const convertedRest = (0, _rest.default)(path); | ||
const convertedParams = (0, _params.default)(path, ignoreFunctionLength); | ||
const convertedRest = convertFunctionRest(path); | ||
const convertedParams = convertFunctionParams(path, ignoreFunctionLength); | ||
if (convertedRest || convertedParams) { | ||
@@ -42,4 +31,3 @@ path.scope.crawl(); | ||
}); | ||
exports.default = _default; | ||
//# sourceMappingURL=index.js.map |
@@ -1,10 +0,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = convertFunctionParams; | ||
var _core = require("@babel/core"); | ||
var _shadowUtils = require("./shadow-utils"); | ||
const buildDefaultParam = _core.template.statement(` | ||
import { template, types as t } from "@babel/core"; | ||
import { iifeVisitor, collectShadowedParamsNames, buildScopeIIFE } from "./shadow-utils.js"; | ||
const buildDefaultParam = template.statement(` | ||
let VARIABLE_NAME = | ||
@@ -16,3 +10,3 @@ arguments.length > ARGUMENT_KEY && arguments[ARGUMENT_KEY] !== undefined ? | ||
`); | ||
const buildLooseDefaultParam = _core.template.statement(` | ||
const buildLooseDefaultParam = template.statement(` | ||
if (ASSIGNMENT_IDENTIFIER === UNDEFINED) { | ||
@@ -22,9 +16,9 @@ ASSIGNMENT_IDENTIFIER = DEFAULT_VALUE; | ||
`); | ||
const buildLooseDestructuredDefaultParam = _core.template.statement(` | ||
const buildLooseDestructuredDefaultParam = template.statement(` | ||
let ASSIGNMENT_IDENTIFIER = PARAMETER_NAME === UNDEFINED ? DEFAULT_VALUE : PARAMETER_NAME ; | ||
`); | ||
const buildSafeArgumentsAccess = _core.template.statement(` | ||
const buildSafeArgumentsAccess = template.statement(` | ||
let $0 = arguments.length > $1 ? arguments[$1] : undefined; | ||
`); | ||
function convertFunctionParams(path, ignoreFunctionLength, shouldTransformParam, replaceRestElement) { | ||
export default function convertFunctionParams(path, ignoreFunctionLength, shouldTransformParam, replaceRestElement) { | ||
const params = path.get("params"); | ||
@@ -40,3 +34,3 @@ const isSimpleParameterList = params.every(param => param.isIdentifier()); | ||
for (const param of params) { | ||
(0, _shadowUtils.collectShadowedParamsNames)(param, scope, shadowedParams); | ||
collectShadowedParamsNames(param, scope, shadowedParams); | ||
} | ||
@@ -49,3 +43,3 @@ const state = { | ||
for (const param of params) { | ||
if (!param.isIdentifier()) param.traverse(_shadowUtils.iifeVisitor, state); | ||
if (!param.isIdentifier()) param.traverse(iifeVisitor, state); | ||
if (state.needsOuterBinding) break; | ||
@@ -65,3 +59,3 @@ } | ||
const paramIsAssignmentPattern = param.isAssignmentPattern(); | ||
if (paramIsAssignmentPattern && (ignoreFunctionLength || _core.types.isMethod(node, { | ||
if (paramIsAssignmentPattern && (ignoreFunctionLength || t.isMethod(node, { | ||
kind: "set" | ||
@@ -74,3 +68,3 @@ }))) { | ||
body.push(buildLooseDefaultParam({ | ||
ASSIGNMENT_IDENTIFIER: _core.types.cloneNode(left.node), | ||
ASSIGNMENT_IDENTIFIER: t.cloneNode(left.node), | ||
DEFAULT_VALUE: right.node, | ||
@@ -85,3 +79,3 @@ UNDEFINED: undefinedNode | ||
DEFAULT_VALUE: right.node, | ||
PARAMETER_NAME: _core.types.cloneNode(paramName), | ||
PARAMETER_NAME: t.cloneNode(paramName), | ||
UNDEFINED: undefinedNode | ||
@@ -98,7 +92,7 @@ })); | ||
DEFAULT_VALUE: right.node, | ||
ARGUMENT_KEY: _core.types.numericLiteral(i) | ||
ARGUMENT_KEY: t.numericLiteral(i) | ||
}); | ||
body.push(defNode); | ||
} else if (firstOptionalIndex !== null) { | ||
const defNode = buildSafeArgumentsAccess([param.node, _core.types.numericLiteral(i)]); | ||
const defNode = buildSafeArgumentsAccess([param.node, t.numericLiteral(i)]); | ||
body.push(defNode); | ||
@@ -108,5 +102,5 @@ } else if (param.isObjectPattern() || param.isArrayPattern()) { | ||
uid.typeAnnotation = param.node.typeAnnotation; | ||
const defNode = _core.types.variableDeclaration("let", [_core.types.variableDeclarator(param.node, uid)]); | ||
const defNode = t.variableDeclaration("let", [t.variableDeclarator(param.node, uid)]); | ||
body.push(defNode); | ||
param.replaceWith(_core.types.cloneNode(uid)); | ||
param.replaceWith(t.cloneNode(uid)); | ||
} | ||
@@ -128,4 +122,4 @@ if (transformedRestNodes) { | ||
if (generator || state.needsOuterBinding || shadowedParams.size > 0) { | ||
body.push((0, _shadowUtils.buildScopeIIFE)(shadowedParams, path.node.body)); | ||
path.set("body", _core.types.blockStatement(body)); | ||
body.push(buildScopeIIFE(shadowedParams, path.node.body)); | ||
path.set("body", t.blockStatement(body)); | ||
const bodyPath = path.get("body.body"); | ||
@@ -139,3 +133,3 @@ const arrowPath = bodyPath[bodyPath.length - 1].get("argument.callee"); | ||
if (async) { | ||
path.node.body = _core.template.statement.ast`{ | ||
path.node.body = template.statement.ast`{ | ||
try { | ||
@@ -142,0 +136,0 @@ ${path.node.body.body} |
@@ -1,10 +0,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = convertFunctionRest; | ||
var _core = require("@babel/core"); | ||
var _shadowUtils = require("./shadow-utils"); | ||
const buildRest = _core.template.statement(` | ||
import { template, types as t } from "@babel/core"; | ||
import { iifeVisitor, collectShadowedParamsNames, buildScopeIIFE } from "./shadow-utils.js"; | ||
const buildRest = template.statement(` | ||
for (var LEN = ARGUMENTS.length, | ||
@@ -18,9 +12,9 @@ ARRAY = new Array(ARRAY_LEN), | ||
`); | ||
const restIndex = _core.template.expression(` | ||
const restIndex = template.expression(` | ||
(INDEX < OFFSET || ARGUMENTS.length <= INDEX) ? undefined : ARGUMENTS[INDEX] | ||
`); | ||
const restIndexImpure = _core.template.expression(` | ||
const restIndexImpure = template.expression(` | ||
REF = INDEX, (REF < OFFSET || ARGUMENTS.length <= REF) ? undefined : ARGUMENTS[REF] | ||
`); | ||
const restLength = _core.template.expression(` | ||
const restLength = template.expression(` | ||
ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET | ||
@@ -114,3 +108,3 @@ `); | ||
let count = node.params.length; | ||
if (count > 0 && _core.types.isIdentifier(node.params[0], { | ||
if (count > 0 && t.isIdentifier(node.params[0], { | ||
name: "this" | ||
@@ -124,14 +118,14 @@ })) { | ||
const length = node.params.length; | ||
return length > 0 && _core.types.isRestElement(node.params[length - 1]); | ||
return length > 0 && t.isRestElement(node.params[length - 1]); | ||
} | ||
function optimiseIndexGetter(path, argsId, offset) { | ||
const offsetLiteral = _core.types.numericLiteral(offset); | ||
const offsetLiteral = t.numericLiteral(offset); | ||
let index; | ||
const parent = path.parent; | ||
if (_core.types.isNumericLiteral(parent.property)) { | ||
index = _core.types.numericLiteral(parent.property.value + offset); | ||
if (t.isNumericLiteral(parent.property)) { | ||
index = t.numericLiteral(parent.property.value + offset); | ||
} else if (offset === 0) { | ||
index = parent.property; | ||
} else { | ||
index = _core.types.binaryExpression("+", parent.property, _core.types.cloneNode(offsetLiteral)); | ||
index = t.binaryExpression("+", parent.property, t.cloneNode(offsetLiteral)); | ||
} | ||
@@ -152,3 +146,3 @@ const { | ||
INDEX: index, | ||
REF: _core.types.cloneNode(temp) | ||
REF: t.cloneNode(temp) | ||
})); | ||
@@ -177,3 +171,3 @@ } else { | ||
ARGUMENTS: argsId, | ||
OFFSET: _core.types.numericLiteral(offset) | ||
OFFSET: t.numericLiteral(offset) | ||
})); | ||
@@ -184,3 +178,3 @@ } else { | ||
} | ||
function convertFunctionRest(path) { | ||
export default function convertFunctionRest(path) { | ||
const { | ||
@@ -194,3 +188,3 @@ node, | ||
const shadowedParams = new Set(); | ||
(0, _shadowUtils.collectShadowedParamsNames)(restPath, path.scope, shadowedParams); | ||
collectShadowedParamsNames(restPath, path.scope, shadowedParams); | ||
let needsIIFE = shadowedParams.size > 0; | ||
@@ -202,3 +196,3 @@ if (!needsIIFE) { | ||
}; | ||
restPath.traverse(_shadowUtils.iifeVisitor, state); | ||
restPath.traverse(iifeVisitor, state); | ||
needsIIFE = state.needsOuterBinding; | ||
@@ -208,3 +202,3 @@ } | ||
path.ensureBlock(); | ||
path.set("body", _core.types.blockStatement([(0, _shadowUtils.buildScopeIIFE)(shadowedParams, path.node.body)])); | ||
path.set("body", t.blockStatement([buildScopeIIFE(shadowedParams, path.node.body)])); | ||
} | ||
@@ -214,6 +208,6 @@ } | ||
node.params.pop(); | ||
if (_core.types.isPattern(rest)) { | ||
if (t.isPattern(rest)) { | ||
const pattern = rest; | ||
rest = scope.generateUidIdentifier("ref"); | ||
const declar = _core.types.variableDeclaration("let", [_core.types.variableDeclarator(pattern, rest)]); | ||
const declar = t.variableDeclaration("let", [t.variableDeclarator(pattern, rest)]); | ||
path.ensureBlock(); | ||
@@ -224,3 +218,3 @@ node.body.body.unshift(declar); | ||
} | ||
const argsId = _core.types.identifier("arguments"); | ||
const argsId = t.identifier("arguments"); | ||
const paramsCount = getParamsCount(node); | ||
@@ -242,3 +236,3 @@ const state = { | ||
} of state.candidates) { | ||
const clonedArgsId = _core.types.cloneNode(argsId); | ||
const clonedArgsId = t.cloneNode(argsId); | ||
switch (cause) { | ||
@@ -260,3 +254,3 @@ case "indexGetter": | ||
}) => path)); | ||
const start = _core.types.numericLiteral(paramsCount); | ||
const start = t.numericLiteral(paramsCount); | ||
const key = scope.generateUidIdentifier("key"); | ||
@@ -266,7 +260,7 @@ const len = scope.generateUidIdentifier("len"); | ||
if (paramsCount) { | ||
arrKey = _core.types.binaryExpression("-", _core.types.cloneNode(key), _core.types.cloneNode(start)); | ||
arrLen = _core.types.conditionalExpression(_core.types.binaryExpression(">", _core.types.cloneNode(len), _core.types.cloneNode(start)), _core.types.binaryExpression("-", _core.types.cloneNode(len), _core.types.cloneNode(start)), _core.types.numericLiteral(0)); | ||
arrKey = t.binaryExpression("-", t.cloneNode(key), t.cloneNode(start)); | ||
arrLen = t.conditionalExpression(t.binaryExpression(">", t.cloneNode(len), t.cloneNode(start)), t.binaryExpression("-", t.cloneNode(len), t.cloneNode(start)), t.numericLiteral(0)); | ||
} else { | ||
arrKey = _core.types.identifier(key.name); | ||
arrLen = _core.types.identifier(len.name); | ||
arrKey = t.identifier(key.name); | ||
arrLen = t.identifier(len.name); | ||
} | ||
@@ -273,0 +267,0 @@ const loop = buildRest({ |
@@ -1,11 +0,3 @@ | ||
"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 = { | ||
import { types as t } from "@babel/core"; | ||
export const iifeVisitor = { | ||
"ReferencedIdentifier|BindingIdentifier"(path, state) { | ||
@@ -26,4 +18,3 @@ const { | ||
}; | ||
exports.iifeVisitor = iifeVisitor; | ||
function collectShadowedParamsNames(param, functionScope, shadowedParams) { | ||
export function collectShadowedParamsNames(param, functionScope, shadowedParams) { | ||
for (const name of Object.keys(param.getBindingIdentifiers())) { | ||
@@ -56,12 +47,12 @@ var _functionScope$bindin; | ||
} | ||
function buildScopeIIFE(shadowedParams, body) { | ||
export 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)); | ||
args.push(t.identifier(name)); | ||
params.push(t.identifier(name)); | ||
} | ||
return _core.types.returnStatement(_core.types.callExpression(_core.types.arrowFunctionExpression(params, body), args)); | ||
return t.returnStatement(t.callExpression(t.arrowFunctionExpression(params, body), args)); | ||
} | ||
//# sourceMappingURL=shadow-utils.js.map |
{ | ||
"name": "@babel/plugin-transform-parameters", | ||
"version": "7.21.4-esm", | ||
"version": "7.21.4-esm.1", | ||
"description": "Compile ES2015 default and rest parameters to ES5", | ||
@@ -17,3 +17,3 @@ "repository": { | ||
"dependencies": { | ||
"@babel/helper-plugin-utils": "^7.21.4-esm" | ||
"@babel/helper-plugin-utils": "^7.21.4-esm.1" | ||
}, | ||
@@ -24,7 +24,7 @@ "keywords": [ | ||
"peerDependencies": { | ||
"@babel/core": "^7.0.0-0 || 7.21.4-esm" | ||
"@babel/core": "^7.0.0-0 || 7.21.4-esm.1" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.21.4-esm", | ||
"@babel/helper-plugin-test-runner": "^7.21.4-esm" | ||
"@babel/core": "^7.21.4-esm.1", | ||
"@babel/helper-plugin-test-runner": "^7.21.4-esm.1" | ||
}, | ||
@@ -35,3 +35,3 @@ "engines": { | ||
"author": "The Babel Team (https://babel.dev/team)", | ||
"type": "commonjs" | ||
"type": "module" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Yes
63499
499