Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@babel/plugin-transform-new-target

Package Overview
Dependencies
Maintainers
4
Versions
95
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-transform-new-target - npm Package Compare versions

Comparing version
8.0.0-rc.3
to
8.0.0-rc.4
+4
-4
lib/index.js
import { declare } from '@babel/helper-plugin-utils';
import { types } from '@babel/core';
var index = declare(api => {
api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.3");
const index = declare(api => {
api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.4");
return {

@@ -39,3 +39,3 @@ name: "transform-new-target",

if (types.isMethod(node)) {
path.replaceWith(scope.buildUndefinedNode());
path.replaceWith(types.buildUndefinedNode());
return;

@@ -60,3 +60,3 @@ }

}
path.replaceWith(types.conditionalExpression(types.binaryExpression("instanceof", types.thisExpression(), types.cloneNode(node.id)), constructor, scope.buildUndefinedNode()));
path.replaceWith(types.conditionalExpression(types.binaryExpression("instanceof", types.thisExpression(), types.cloneNode(node.id)), constructor, types.buildUndefinedNode()));
}

@@ -63,0 +63,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, type NodePath } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-new-target\",\n\n visitor: {\n MetaProperty(path) {\n const meta = path.get(\"meta\");\n const property = path.get(\"property\");\n const { scope } = path;\n\n if (\n meta.isIdentifier({ name: \"new\" }) &&\n property.isIdentifier({ name: \"target\" })\n ) {\n const func = path.findParent(path => {\n if (path.isClass()) return true;\n if (path.isFunction() && !path.isArrowFunctionExpression()) {\n if (path.isClassMethod({ kind: \"constructor\" })) {\n return false;\n }\n\n return true;\n }\n return false;\n }) as NodePath<\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.Class\n | t.ClassMethod\n | t.ClassPrivateMethod\n >;\n\n if (!func) {\n throw path.buildCodeFrameError(\n \"new.target must be under a (non-arrow) function or a class.\",\n );\n }\n\n const { node } = func;\n if (t.isMethod(node)) {\n path.replaceWith(scope.buildUndefinedNode());\n return;\n }\n\n const constructor = t.memberExpression(\n t.thisExpression(),\n t.identifier(\"constructor\"),\n );\n\n if (func.isClass()) {\n path.replaceWith(constructor);\n return;\n }\n\n if (!node.id) {\n node.id = scope.generateUidIdentifier(\"target\");\n } else {\n // packages/babel-helper-create-class-features-plugin/src/fields.ts#L192 unshadow\n let scope = path.scope;\n const name = node.id.name;\n while (scope !== func.parentPath.scope) {\n if (\n scope.hasOwnBinding(name) &&\n !scope.bindingIdentifierEquals(name, node.id)\n ) {\n scope.rename(name);\n }\n scope = scope.parent!;\n }\n }\n\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\n \"instanceof\",\n t.thisExpression(),\n t.cloneNode(node.id),\n ),\n constructor,\n scope.buildUndefinedNode(),\n ),\n );\n }\n },\n },\n };\n});\n"],"names":["declare","api","assertVersion","name","visitor","MetaProperty","path","meta","get","property","scope","isIdentifier","func","findParent","isClass","isFunction","isArrowFunctionExpression","isClassMethod","kind","buildCodeFrameError","node","t","isMethod","replaceWith","buildUndefinedNode","constructor","memberExpression","thisExpression","identifier","id","generateUidIdentifier","parentPath","hasOwnBinding","bindingIdentifierEquals","rename","parent","conditionalExpression","binaryExpression","cloneNode"],"mappings":"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"}
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, type NodePath } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(\"^7.0.0-0 || ^8.0.0\"));\n\n return {\n name: \"transform-new-target\",\n\n visitor: {\n MetaProperty(path) {\n const meta = path.get(\"meta\");\n const property = path.get(\"property\");\n const { scope } = path;\n\n if (\n meta.isIdentifier({ name: \"new\" }) &&\n property.isIdentifier({ name: \"target\" })\n ) {\n const func = path.findParent(path => {\n if (path.isClass()) return true;\n if (path.isFunction() && !path.isArrowFunctionExpression()) {\n if (path.isClassMethod({ kind: \"constructor\" })) {\n return false;\n }\n\n return true;\n }\n return false;\n }) as NodePath<\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.Class\n | t.ClassMethod\n | t.ClassPrivateMethod\n >;\n\n if (!func) {\n throw path.buildCodeFrameError(\n \"new.target must be under a (non-arrow) function or a class.\",\n );\n }\n\n const { node } = func;\n if (t.isMethod(node)) {\n path.replaceWith(t.buildUndefinedNode());\n return;\n }\n\n const constructor = t.memberExpression(\n t.thisExpression(),\n t.identifier(\"constructor\"),\n );\n\n if (func.isClass()) {\n path.replaceWith(constructor);\n return;\n }\n\n if (!node.id) {\n node.id = scope.generateUidIdentifier(\"target\");\n } else {\n // packages/babel-helper-create-class-features-plugin/src/fields.ts#L192 unshadow\n let scope = path.scope;\n const name = node.id.name;\n while (scope !== func.parentPath.scope) {\n if (\n scope.hasOwnBinding(name) &&\n !scope.bindingIdentifierEquals(name, node.id)\n ) {\n scope.rename(name);\n }\n scope = scope.parent!;\n }\n }\n\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\n \"instanceof\",\n t.thisExpression(),\n t.cloneNode(node.id),\n ),\n constructor,\n t.buildUndefinedNode(),\n ),\n );\n }\n },\n },\n };\n});\n"],"names":["declare","api","assertVersion","name","visitor","MetaProperty","path","meta","get","property","scope","isIdentifier","func","findParent","isClass","isFunction","isArrowFunctionExpression","isClassMethod","kind","buildCodeFrameError","node","t","isMethod","replaceWith","buildUndefinedNode","constructor","memberExpression","thisExpression","identifier","id","generateUidIdentifier","parentPath","hasOwnBinding","bindingIdentifierEquals","rename","parent","conditionalExpression","binaryExpression","cloneNode"],"mappings":"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"}
{
"name": "@babel/plugin-transform-new-target",
"version": "8.0.0-rc.3",
"version": "8.0.0-rc.4",
"description": "Transforms new.target meta property",

@@ -20,12 +20,12 @@ "repository": {

"dependencies": {
"@babel/helper-plugin-utils": "^8.0.0-rc.3"
"@babel/helper-plugin-utils": "^8.0.0-rc.4"
},
"peerDependencies": {
"@babel/core": "^8.0.0-rc.3"
"@babel/core": "^8.0.0-rc.4"
},
"devDependencies": {
"@babel/core": "^8.0.0-rc.3",
"@babel/helper-plugin-test-runner": "^8.0.0-rc.3",
"@babel/plugin-transform-arrow-functions": "^8.0.0-rc.3",
"@babel/plugin-transform-class-properties": "^8.0.0-rc.3"
"@babel/core": "^8.0.0-rc.4",
"@babel/helper-plugin-test-runner": "^8.0.0-rc.4",
"@babel/plugin-transform-arrow-functions": "^8.0.0-rc.4",
"@babel/plugin-transform-class-properties": "^8.0.0-rc.4"
},

@@ -32,0 +32,0 @@ "engines": {