Socket
Socket
Sign inDemoInstall

@babel/helper-create-class-features-plugin

Package Overview
Dependencies
Maintainers
4
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/helper-create-class-features-plugin - npm Package Compare versions

Comparing version 7.24.1 to 7.24.4

58

lib/decorators.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc