@babel/helper-create-class-features-plugin
Advanced tools
Comparing version 7.24.1 to 7.24.4
@@ -195,9 +195,11 @@ "use strict"; | ||
function optimizeSuperCallAndExpressions(expressions, protoInitLocal) { | ||
if (expressions.length >= 2 && isProtoInitCallExpression(expressions[1], protoInitLocal)) { | ||
const mergedSuperCall = _core.types.callExpression(_core.types.cloneNode(protoInitLocal), [expressions[0]]); | ||
expressions.splice(0, 2, mergedSuperCall); | ||
if (protoInitLocal) { | ||
if (expressions.length >= 2 && isProtoInitCallExpression(expressions[1], protoInitLocal)) { | ||
const mergedSuperCall = _core.types.callExpression(_core.types.cloneNode(protoInitLocal), [expressions[0]]); | ||
expressions.splice(0, 2, mergedSuperCall); | ||
} | ||
if (expressions.length >= 2 && _core.types.isThisExpression(expressions[expressions.length - 1]) && isProtoInitCallExpression(expressions[expressions.length - 2], protoInitLocal)) { | ||
expressions.splice(expressions.length - 1, 1); | ||
} | ||
} | ||
if (expressions.length >= 2 && _core.types.isThisExpression(expressions[expressions.length - 1]) && isProtoInitCallExpression(expressions[expressions.length - 2], protoInitLocal)) { | ||
expressions.splice(expressions.length - 1, 1); | ||
} | ||
return maybeSequenceExpression(expressions); | ||
@@ -357,16 +359,2 @@ } | ||
} | ||
function usesFunctionContextOrYieldAwait(expression) { | ||
try { | ||
_core.types.traverseFast(expression, node => { | ||
if (_core.types.isThisExpression(node) || _core.types.isSuper(node) || _core.types.isYieldExpression(node) || _core.types.isAwaitExpression(node) || _core.types.isIdentifier(node, { | ||
name: "arguments" | ||
}) || _core.types.isMetaProperty(node) && node.meta.name !== "import") { | ||
throw null; | ||
} | ||
}); | ||
return false; | ||
} catch (_unused) { | ||
return true; | ||
} | ||
} | ||
function usesPrivateField(expression) { | ||
@@ -380,3 +368,3 @@ try { | ||
return false; | ||
} catch (_unused2) { | ||
} catch (_unused) { | ||
return true; | ||
@@ -435,3 +423,3 @@ } | ||
function transformClass(path, state, constantSuper, ignoreFunctionLength, className, propertyVisitor, version) { | ||
var _classDecorationsId; | ||
var _path$node$id, _classDecorationsId; | ||
const body = path.get("body.body"); | ||
@@ -452,2 +440,19 @@ const classDecorators = path.node.decorators; | ||
let staticInitLocal; | ||
const classIdName = (_path$node$id = path.node.id) == null ? void 0 : _path$node$id.name; | ||
const usesFunctionContextOrYieldAwait = expression => { | ||
try { | ||
_core.types.traverseFast(expression, node => { | ||
if (_core.types.isThisExpression(node) || _core.types.isSuper(node) || _core.types.isYieldExpression(node) || _core.types.isAwaitExpression(node) || _core.types.isIdentifier(node, { | ||
name: "arguments" | ||
}) || classIdName && _core.types.isIdentifier(node, { | ||
name: classIdName | ||
}) || _core.types.isMetaProperty(node) && node.meta.name !== "import") { | ||
throw null; | ||
} | ||
}); | ||
return false; | ||
} catch (_unused2) { | ||
return true; | ||
} | ||
}; | ||
const instancePrivateNames = []; | ||
@@ -983,3 +988,10 @@ for (const element of body) { | ||
if (needsDeclaraionForClassBinding) { | ||
path.insertBefore(_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classIdLocal))])); | ||
const classBindingInfo = scopeParent.getBinding(classIdLocal.name); | ||
if (!classBindingInfo.constantViolations.length) { | ||
path.insertBefore(_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classIdLocal))])); | ||
} else { | ||
const classOuterBindingDelegateLocal = scopeParent.generateUidIdentifier("t" + classIdLocal.name); | ||
const classOuterBindingLocal = classIdLocal; | ||
path.replaceWithMultiple([_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classOuterBindingLocal)), _core.types.variableDeclarator(classOuterBindingDelegateLocal)]), _core.types.blockStatement([_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classIdLocal))]), path.node, _core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(classOuterBindingDelegateLocal), _core.types.cloneNode(classIdLocal)))]), _core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(classOuterBindingLocal), _core.types.cloneNode(classOuterBindingDelegateLocal)))]); | ||
} | ||
} | ||
@@ -986,0 +998,0 @@ if (decoratedPrivateMethods.size > 0) { |
@@ -100,8 +100,8 @@ "use strict"; | ||
if (typeof file.get(versionKey) === "number") { | ||
file.set(versionKey, "7.24.1"); | ||
file.set(versionKey, "7.24.4"); | ||
return; | ||
} | ||
} | ||
if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.24.1")) { | ||
file.set(versionKey, "7.24.1"); | ||
if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.24.4")) { | ||
file.set(versionKey, "7.24.4"); | ||
} | ||
@@ -114,3 +114,3 @@ }, | ||
var _ref; | ||
if (file.get(versionKey) !== "7.24.1") return; | ||
if (file.get(versionKey) !== "7.24.4") return; | ||
if (!(0, _features.shouldTransform)(path, file)) return; | ||
@@ -232,3 +232,3 @@ const pathIsClassDeclaration = path.isClassDeclaration(); | ||
{ | ||
if (file.get(versionKey) !== "7.24.1") return; | ||
if (file.get(versionKey) !== "7.24.4") return; | ||
const decl = path.get("declaration"); | ||
@@ -235,0 +235,0 @@ if (decl.isClassDeclaration() && (0, _decorators2.hasDecorators)(decl.node)) { |
{ | ||
"name": "@babel/helper-create-class-features-plugin", | ||
"version": "7.24.1", | ||
"version": "7.24.4", | ||
"author": "The Babel Team (https://babel.dev/team)", | ||
@@ -35,5 +35,5 @@ "license": "MIT", | ||
"devDependencies": { | ||
"@babel/core": "^7.24.1", | ||
"@babel/core": "^7.24.4", | ||
"@babel/helper-plugin-test-runner": "^7.24.1", | ||
"@babel/preset-env": "^7.24.1", | ||
"@babel/preset-env": "^7.24.4", | ||
"@types/charcodes": "^0.2.0", | ||
@@ -40,0 +40,0 @@ "charcodes": "^0.2.0" |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
434334
3002