Socket
Socket
Sign inDemoInstall

@babel/plugin-transform-classes

Package Overview
Dependencies
8
Maintainers
5
Versions
101
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.0.0-beta.46 to 7.0.0-beta.47

43

lib/index.js

@@ -9,3 +9,3 @@ "use strict";

function _helperPluginUtils() {
var data = require("@babel/helper-plugin-utils");
const data = require("@babel/helper-plugin-utils");

@@ -20,3 +20,3 @@ _helperPluginUtils = function _helperPluginUtils() {

function _helperAnnotateAsPure() {
var data = _interopRequireDefault(require("@babel/helper-annotate-as-pure"));
const data = _interopRequireDefault(require("@babel/helper-annotate-as-pure"));

@@ -31,3 +31,3 @@ _helperAnnotateAsPure = function _helperAnnotateAsPure() {

function _helperFunctionName() {
var data = _interopRequireDefault(require("@babel/helper-function-name"));
const data = _interopRequireDefault(require("@babel/helper-function-name"));

@@ -42,3 +42,3 @@ _helperFunctionName = function _helperFunctionName() {

function _helperSplitExportDeclaration() {
var data = _interopRequireDefault(require("@babel/helper-split-export-declaration"));
const data = _interopRequireDefault(require("@babel/helper-split-export-declaration"));

@@ -53,3 +53,3 @@ _helperSplitExportDeclaration = function _helperSplitExportDeclaration() {

function _core() {
var data = require("@babel/core");
const data = require("@babel/core");

@@ -64,3 +64,3 @@ _core = function _core() {

function _globals() {
var data = _interopRequireDefault(require("globals"));
const data = _interopRequireDefault(require("globals"));

@@ -78,29 +78,27 @@ _globals = function _globals() {

var getBuiltinClasses = function getBuiltinClasses(category) {
return Object.keys(_globals().default[category]).filter(function (name) {
return /^[A-Z]/.test(name);
});
};
const getBuiltinClasses = category => Object.keys(_globals().default[category]).filter(name => /^[A-Z]/.test(name));
var builtinClasses = new Set(getBuiltinClasses("builtin").concat(getBuiltinClasses("browser")));
const builtinClasses = new Set([...getBuiltinClasses("builtin"), ...getBuiltinClasses("browser")]);
var _default = (0, _helperPluginUtils().declare)(function (api, options) {
var _default = (0, _helperPluginUtils().declare)((api, options) => {
api.assertVersion(7);
var loose = options.loose;
var VISITED = Symbol();
const loose = options.loose;
const VISITED = Symbol();
return {
visitor: {
ExportDefaultDeclaration: function ExportDefaultDeclaration(path) {
ExportDefaultDeclaration(path) {
if (!path.get("declaration").isClassDeclaration()) return;
(0, _helperSplitExportDeclaration().default)(path);
},
ClassDeclaration: function ClassDeclaration(path) {
var node = path.node;
var ref = node.id || path.scope.generateUidIdentifier("class");
ClassDeclaration(path) {
const node = path.node;
const ref = node.id || path.scope.generateUidIdentifier("class");
path.replaceWith(_core().types.variableDeclaration("let", [_core().types.variableDeclarator(ref, _core().types.toExpression(node))]));
},
ClassExpression: function ClassExpression(path, state) {
var node = path.node;
ClassExpression(path, state) {
const node = path.node;
if (node[VISITED]) return;
var inferred = (0, _helperFunctionName().default)(path);
const inferred = (0, _helperFunctionName().default)(path);

@@ -123,2 +121,3 @@ if (inferred && inferred !== node) {

}
}

@@ -125,0 +124,0 @@ };

@@ -9,3 +9,3 @@ "use strict";

function _core() {
var data = require("@babel/core");
const data = require("@babel/core");

@@ -32,8 +32,8 @@ _core = function _core() {

var decorator = _ref;
var expression = decorator.expression;
const decorator = _ref;
const expression = decorator.expression;
if (!_core().types.isMemberExpression(expression)) continue;
var temp = scope.maybeGenerateMemoised(expression.object);
var ref = void 0;
var nodes = [];
const temp = scope.maybeGenerateMemoised(expression.object);
let ref;
const nodes = [];

@@ -40,0 +40,0 @@ if (temp) {

@@ -9,3 +9,3 @@ "use strict";

function _helperFunctionName() {
var data = _interopRequireDefault(require("@babel/helper-function-name"));
const data = _interopRequireDefault(require("@babel/helper-function-name"));

@@ -20,3 +20,3 @@ _helperFunctionName = function _helperFunctionName() {

function _helperReplaceSupers() {
var data = _interopRequireWildcard(require("@babel/helper-replace-supers"));
const data = _interopRequireWildcard(require("@babel/helper-replace-supers"));

@@ -31,3 +31,3 @@ _helperReplaceSupers = function _helperReplaceSupers() {

function _helperOptimiseCallExpression() {
var data = _interopRequireDefault(require("@babel/helper-optimise-call-expression"));
const data = _interopRequireDefault(require("@babel/helper-optimise-call-expression"));

@@ -42,3 +42,3 @@ _helperOptimiseCallExpression = function _helperOptimiseCallExpression() {

function defineMap() {
var data = _interopRequireWildcard(require("@babel/helper-define-map"));
const data = _interopRequireWildcard(require("@babel/helper-define-map"));

@@ -53,3 +53,3 @@ defineMap = function defineMap() {

function _core() {
var data = require("@babel/core");
const data = require("@babel/core");

@@ -63,4 +63,2 @@ _core = function _core() {

var _templateObject = _taggedTemplateLiteralLoose(["\n (function () {\n super(...arguments);\n })\n "]);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

@@ -70,6 +68,4 @@

function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
function buildConstructor(classRef, constructorBody, node) {
var func = _core().types.functionDeclaration(_core().types.cloneNode(classRef), [], constructorBody);
const func = _core().types.functionDeclaration(_core().types.cloneNode(classRef), [], constructorBody);

@@ -81,7 +77,7 @@ _core().types.inherits(func, node);

var verifyConstructorVisitor = _core().traverse.visitors.merge([_helperReplaceSupers().environmentVisitor, {
Super: function Super(path, state) {
const verifyConstructorVisitor = _core().traverse.visitors.merge([_helperReplaceSupers().environmentVisitor, {
Super(path, state) {
if (state.isDerived) return;
var node = path.node,
parentPath = path.parentPath;
const node = path.node,
parentPath = path.parentPath;

@@ -94,6 +90,7 @@ if (parentPath.isCallExpression({

},
ThisExpression: function ThisExpression(path, state) {
ThisExpression(path, state) {
if (!state.isDerived) return;
var node = path.node,
parentPath = path.parentPath;
const node = path.node,
parentPath = path.parentPath;

@@ -106,3 +103,3 @@ if (parentPath.isMemberExpression({

var assertion = _core().types.callExpression(state.file.addHelper("assertThisInitialized"), [node]);
const assertion = _core().types.callExpression(state.file.addHelper("assertThisInitialized"), [node]);

@@ -112,6 +109,7 @@ path.replaceWith(assertion);

}
}]);
function transformClass(path, file, builtinClasses, isLoose) {
var classState = {
const classState = {
parent: undefined,

@@ -149,19 +147,16 @@ scope: undefined,

var setState = function setState(newState) {
const setState = newState => {
Object.assign(classState, newState);
};
var findThisesVisitor = _core().traverse.visitors.merge([_helperReplaceSupers().environmentVisitor, {
ThisExpression: function ThisExpression(path) {
const findThisesVisitor = _core().traverse.visitors.merge([_helperReplaceSupers().environmentVisitor, {
ThisExpression(path) {
classState.superThises.push(path);
}
}]);
function pushToMap(node, enumerable, kind, scope) {
if (kind === void 0) {
kind = "value";
}
function pushToMap(node, enumerable, kind = "value", scope) {
let mutatorMap;
var mutatorMap;
if (node.static) {

@@ -179,3 +174,3 @@ setState({

var map = defineMap().push(mutatorMap, node, kind, classState.file, scope);
const map = defineMap().push(mutatorMap, node, kind, classState.file, scope);

@@ -190,4 +185,4 @@ if (enumerable) {

function maybeCreateConstructor() {
var hasConstructor = false;
var paths = classState.path.get("body.body");
let hasConstructor = false;
const paths = classState.path.get("body.body");

@@ -206,4 +201,4 @@ for (var _iterator = paths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {

var _path = _ref;
hasConstructor = _path.equals("kind", "constructor");
const path = _ref;
hasConstructor = path.equals("kind", "constructor");
if (hasConstructor) break;

@@ -213,9 +208,12 @@ }

if (hasConstructor) return;
var params, body;
let params, body;
if (classState.isDerived) {
var _constructor = _core().template.expression.ast(_templateObject);
params = _constructor.params;
body = _constructor.body;
const constructor = _core().template.expression.ast`
(function () {
super(...arguments);
})
`;
params = constructor.params;
body = constructor.body;
} else {

@@ -235,5 +233,5 @@ params = [];

if (classState.userConstructor) {
var constructorBody = classState.constructorBody,
userConstructor = classState.userConstructor,
construct = classState.construct;
const constructorBody = classState.constructorBody,
userConstructor = classState.userConstructor,
construct = classState.construct;
constructorBody.body = constructorBody.body.concat(userConstructor.body.body);

@@ -251,3 +249,3 @@

function pushBody() {
var classBodyPaths = classState.path.get("body.body");
const classBodyPaths = classState.path.get("body.body");

@@ -266,18 +264,18 @@ for (var _iterator2 = classBodyPaths, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {

var _path2 = _ref2;
var node = _path2.node;
const path = _ref2;
const node = path.node;
if (_path2.isClassProperty()) {
throw _path2.buildCodeFrameError("Missing class properties transform.");
if (path.isClassProperty()) {
throw path.buildCodeFrameError("Missing class properties transform.");
}
if (node.decorators) {
throw _path2.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");
throw path.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");
}
if (_core().types.isClassMethod(node)) {
var isConstructor = node.kind === "constructor";
const isConstructor = node.kind === "constructor";
if (isConstructor) {
_path2.traverse(verifyConstructorVisitor, {
path.traverse(verifyConstructorVisitor, {
isDerived: classState.isDerived,

@@ -288,4 +286,4 @@ file: classState.file

var replaceSupers = new (_helperReplaceSupers().default)({
methodPath: _path2,
const replaceSupers = new (_helperReplaceSupers().default)({
methodPath: path,
objectRef: classState.classRef,

@@ -297,9 +295,8 @@ superRef: classState.superName,

replaceSupers.replace();
var state = {
const state = {
returns: [],
bareSupers: new Set()
};
_path2.traverse(_core().traverse.visitors.merge([_helperReplaceSupers().environmentVisitor, {
ReturnStatement: function ReturnStatement(path, state) {
path.traverse(_core().traverse.visitors.merge([_helperReplaceSupers().environmentVisitor, {
ReturnStatement(path, state) {
if (!path.getFunctionParent().isArrowFunctionExpression()) {

@@ -309,6 +306,7 @@ state.returns.push(path);

},
Super: function Super(path, state) {
var node = path.node,
parentPath = path.parentPath;
Super(path, state) {
const node = path.node,
parentPath = path.parentPath;
if (parentPath.isCallExpression({

@@ -320,8 +318,9 @@ callee: node

}
}]), state);
if (isConstructor) {
pushConstructor(state, node, _path2);
pushConstructor(state, node, path);
} else {
pushMethod(node, _path2);
pushMethod(node, path);
}

@@ -342,5 +341,5 @@ }

function pushDescriptors() {
var body = classState.body;
var instanceProps;
var staticProps;
const body = classState.body;
let instanceProps;
let staticProps;

@@ -364,8 +363,8 @@ if (classState.hasInstanceDescriptors) {

var args = [_core().types.cloneNode(classState.classRef), _core().types.nullLiteral(), _core().types.nullLiteral()];
let args = [_core().types.cloneNode(classState.classRef), _core().types.nullLiteral(), _core().types.nullLiteral()];
if (instanceProps) args[1] = instanceProps;
if (staticProps) args[2] = staticProps;
var lastNonNullIndex = 0;
let lastNonNullIndex = 0;
for (var i = 0; i < args.length; i++) {
for (let i = 0; i < args.length; i++) {
if (!_core().types.isNullLiteral(args[i])) lastNonNullIndex = i;

@@ -382,4 +381,4 @@ }

function wrapSuperCall(bareSuper, superRef, thisRef, body) {
var bareSuperNode = bareSuper.node;
var call;
let bareSuperNode = bareSuper.node;
let call;

@@ -417,13 +416,11 @@ if (classState.isLoose) {

if (!classState.isDerived) return;
var path = classState.userConstructorPath;
var body = path.get("body");
const path = classState.userConstructorPath;
const body = path.get("body");
path.traverse(findThisesVisitor);
var guaranteedSuperBeforeFinish = !!classState.bareSupers.size;
let guaranteedSuperBeforeFinish = !!classState.bareSupers.size;
var _thisRef = function thisRef() {
var ref = path.scope.generateDeclaredUidIdentifier("this");
let _thisRef = function thisRef() {
const ref = path.scope.generateDeclaredUidIdentifier("this");
_thisRef = function thisRef() {
return _core().types.cloneNode(ref);
};
_thisRef = () => _core().types.cloneNode(ref);

@@ -445,3 +442,3 @@ return ref;

var bareSuper = _ref3;
const bareSuper = _ref3;
wrapSuperCall(bareSuper, classState.superName, _thisRef, body);

@@ -475,5 +472,5 @@

var thisPath = _ref4;
var node = thisPath.node,
parentPath = thisPath.parentPath;
const thisPath = _ref4;
const node = thisPath.node,
parentPath = thisPath.parentPath;

@@ -490,7 +487,7 @@ if (parentPath.isMemberExpression({

var wrapReturn;
let wrapReturn;
if (classState.isLoose) {
wrapReturn = function wrapReturn(returnArg) {
var thisExpr = _core().types.callExpression(classState.file.addHelper("assertThisInitialized"), [_thisRef()]);
wrapReturn = returnArg => {
const thisExpr = _core().types.callExpression(classState.file.addHelper("assertThisInitialized"), [_thisRef()]);

@@ -500,8 +497,6 @@ return returnArg ? _core().types.logicalExpression("||", returnArg, thisExpr) : thisExpr;

} else {
wrapReturn = function wrapReturn(returnArg) {
return _core().types.callExpression(classState.file.addHelper("possibleConstructorReturn"), [_thisRef()].concat(returnArg || []));
};
wrapReturn = returnArg => _core().types.callExpression(classState.file.addHelper("possibleConstructorReturn"), [_thisRef()].concat(returnArg || []));
}
var bodyPaths = body.get("body");
const bodyPaths = body.get("body");

@@ -524,3 +519,3 @@ if (!bodyPaths.length || !bodyPaths.pop().isReturnStatement()) {

var returnPath = _ref5;
const returnPath = _ref5;
returnPath.get("argument").replaceWith(wrapReturn(returnPath.node.argument));

@@ -531,3 +526,3 @@ }

function pushMethod(node, path) {
var scope = path ? path.scope : classState.scope;
const scope = path ? path.scope : classState.scope;

@@ -543,3 +538,3 @@ if (node.kind === "method") {

if (classState.isLoose && !node.decorators) {
var classRef = classState.classRef;
let classRef = classState.classRef;

@@ -551,9 +546,9 @@ if (!node.static) {

var methodName = _core().types.memberExpression(_core().types.cloneNode(classRef), node.key, node.computed || _core().types.isLiteral(node.key));
const methodName = _core().types.memberExpression(_core().types.cloneNode(classRef), node.key, node.computed || _core().types.isLiteral(node.key));
var func = _core().types.functionExpression(null, node.params, node.body, node.generator, node.async);
let func = _core().types.functionExpression(null, node.params, node.body, node.generator, node.async);
func.returnType = node.returnType;
var key = _core().types.toComputedKey(node, node.key);
const key = _core().types.toComputedKey(node, node.key);

@@ -564,7 +559,7 @@ if (_core().types.isStringLiteral(key)) {

id: key,
scope: scope
scope
});
}
var expr = _core().types.expressionStatement(_core().types.assignmentExpression("=", methodName, func));
const expr = _core().types.expressionStatement(_core().types.assignmentExpression("=", methodName, func));

@@ -586,5 +581,5 @@ _core().types.inheritsComments(expr, node);

var classProto = _core().types.memberExpression(classState.classRef, _core().types.identifier("prototype"));
const classProto = _core().types.memberExpression(classState.classRef, _core().types.identifier("prototype"));
var protoDeclaration = _core().types.variableDeclaration("var", [_core().types.variableDeclarator(classState.protoAlias, classProto)]);
const protoDeclaration = _core().types.variableDeclaration("var", [_core().types.variableDeclarator(classState.protoAlias, classProto)]);

@@ -607,3 +602,3 @@ classState.body.push(protoDeclaration);

});
var construct = classState.construct;
const construct = classState.construct;

@@ -640,9 +635,9 @@ _core().types.inheritsComments(construct, method);

function setupClosureParamsArgs() {
var superName = classState.superName;
var closureParams = [];
var closureArgs = [];
const superName = classState.superName;
const closureParams = [];
const closureArgs = [];
if (classState.isDerived) {
var arg = classState.extendsNative ? _core().types.callExpression(classState.file.addHelper("wrapNativeSuper"), [_core().types.cloneNode(superName)]) : _core().types.cloneNode(superName);
var param = classState.scope.generateUidIdentifierBasedOnNode(superName);
const arg = classState.extendsNative ? _core().types.callExpression(classState.file.addHelper("wrapNativeSuper"), [_core().types.cloneNode(superName)]) : _core().types.cloneNode(superName);
const param = classState.scope.generateUidIdentifierBasedOnNode(superName);
closureParams.push(param);

@@ -656,4 +651,4 @@ closureArgs.push(arg);

return {
closureParams: closureParams,
closureArgs: closureArgs
closureParams,
closureArgs
};

@@ -667,5 +662,5 @@ }

node: path.node,
path: path,
file: file,
isLoose: isLoose
path,
file,
isLoose
});

@@ -682,13 +677,13 @@ setState({

});
var classRef = classState.classRef,
node = classState.node,
constructorBody = classState.constructorBody;
const classRef = classState.classRef,
node = classState.node,
constructorBody = classState.constructorBody;
setState({
construct: buildConstructor(classRef, constructorBody, node)
});
var body = classState.body;
let body = classState.body;
var _setupClosureParamsAr = setupClosureParamsArgs(),
closureParams = _setupClosureParamsAr.closureParams,
closureArgs = _setupClosureParamsAr.closureArgs;
const _setupClosureParamsAr = setupClosureParamsArgs(),
closureParams = _setupClosureParamsAr.closureParams,
closureArgs = _setupClosureParamsAr.closureArgs;

@@ -701,7 +696,5 @@ buildBody();

body = body.concat(classState.staticPropBody.map(function (fn) {
return fn(_core().types.cloneNode(classState.classRef));
}));
var isStrict = path.isInStrictMode();
var constructorOnly = classState.classId && body.length === 1;
body = body.concat(classState.staticPropBody.map(fn => fn(_core().types.cloneNode(classState.classRef))));
const isStrict = path.isInStrictMode();
let constructorOnly = classState.classId && body.length === 1;

@@ -721,3 +714,3 @@ if (constructorOnly && !isStrict) {

var param = _ref6;
const param = _ref6;

@@ -731,3 +724,3 @@ if (!_core().types.isIdentifier(param)) {

var directives = constructorOnly ? body[0].body.directives : [];
const directives = constructorOnly ? body[0].body.directives : [];

@@ -744,3 +737,3 @@ if (!isStrict) {

var container = _core().types.arrowFunctionExpression(closureParams, _core().types.blockStatement(body, directives));
const container = _core().types.arrowFunctionExpression(closureParams, _core().types.blockStatement(body, directives));

@@ -747,0 +740,0 @@ return _core().types.callExpression(container, closureArgs);

{
"name": "@babel/plugin-transform-classes",
"version": "7.0.0-beta.46",
"version": "7.0.0-beta.47",
"description": "Compile ES2015 classes to ES5",

@@ -9,9 +9,9 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-classes",

"dependencies": {
"@babel/helper-annotate-as-pure": "7.0.0-beta.46",
"@babel/helper-define-map": "7.0.0-beta.46",
"@babel/helper-function-name": "7.0.0-beta.46",
"@babel/helper-optimise-call-expression": "7.0.0-beta.46",
"@babel/helper-plugin-utils": "7.0.0-beta.46",
"@babel/helper-replace-supers": "7.0.0-beta.46",
"@babel/helper-split-export-declaration": "7.0.0-beta.46",
"@babel/helper-annotate-as-pure": "7.0.0-beta.47",
"@babel/helper-define-map": "7.0.0-beta.47",
"@babel/helper-function-name": "7.0.0-beta.47",
"@babel/helper-optimise-call-expression": "7.0.0-beta.47",
"@babel/helper-plugin-utils": "7.0.0-beta.47",
"@babel/helper-replace-supers": "7.0.0-beta.47",
"@babel/helper-split-export-declaration": "7.0.0-beta.47",
"globals": "^11.1.0"

@@ -23,8 +23,8 @@ },

"peerDependencies": {
"@babel/core": "7.0.0-beta.46"
"@babel/core": "7.0.0-beta.47"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.46",
"@babel/helper-plugin-test-runner": "7.0.0-beta.46"
"@babel/core": "7.0.0-beta.47",
"@babel/helper-plugin-test-runner": "7.0.0-beta.47"
}
}
SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc