Socket
Socket
Sign inDemoInstall

@babel/plugin-transform-computed-properties

Package Overview
Dependencies
Maintainers
6
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-transform-computed-properties - npm Package Compare versions

Comparing version 7.0.0-beta.42 to 7.0.0-beta.43

206

lib/index.js
"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _helperPluginUtils = require("@babel/helper-plugin-utils");
function _helperPluginUtils() {
const data = require("@babel/helper-plugin-utils");
var _core = require("@babel/core");
_helperPluginUtils = function () {
return data;
};
var _default = (0, _helperPluginUtils.declare)(function (api, options) {
return data;
}
function _core() {
const data = require("@babel/core");
_core = function () {
return data;
};
return data;
}
var _default = (0, _helperPluginUtils().declare)((api, options) => {
api.assertVersion(7);
var loose = options.loose;
var pushComputedProps = loose ? pushComputedPropsLoose : pushComputedPropsSpec;
var buildMutatorMapAssign = (0, _core.template)("\n MUTATOR_MAP_REF[KEY] = MUTATOR_MAP_REF[KEY] || {};\n MUTATOR_MAP_REF[KEY].KIND = VALUE;\n ");
const {
loose
} = options;
const pushComputedProps = loose ? pushComputedPropsLoose : pushComputedPropsSpec;
const buildMutatorMapAssign = (0, _core().template)(`
MUTATOR_MAP_REF[KEY] = MUTATOR_MAP_REF[KEY] || {};
MUTATOR_MAP_REF[KEY].KIND = VALUE;
`);
function getValue(prop) {
if (_core.types.isObjectProperty(prop)) {
if (_core().types.isObjectProperty(prop)) {
return prop.value;
} else if (_core.types.isObjectMethod(prop)) {
return _core.types.functionExpression(null, prop.params, prop.body, prop.generator, prop.async);
} else if (_core().types.isObjectMethod(prop)) {
return _core().types.functionExpression(null, prop.params, prop.body, prop.generator, prop.async);
}

@@ -28,23 +51,24 @@ }

} else {
body.push(_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.cloneNode(objId), prop.key, prop.computed || _core.types.isLiteral(prop.key)), getValue(prop))));
body.push(_core().types.expressionStatement(_core().types.assignmentExpression("=", _core().types.memberExpression(_core().types.cloneNode(objId), prop.key, prop.computed || _core().types.isLiteral(prop.key)), getValue(prop))));
}
}
function pushMutatorDefine(_ref, prop) {
var body = _ref.body,
getMutatorId = _ref.getMutatorId,
scope = _ref.scope;
var key = !prop.computed && _core.types.isIdentifier(prop.key) ? _core.types.stringLiteral(prop.key.name) : prop.key;
var maybeMemoise = scope.maybeGenerateMemoised(key);
function pushMutatorDefine({
body,
getMutatorId,
scope
}, prop) {
let key = !prop.computed && _core().types.isIdentifier(prop.key) ? _core().types.stringLiteral(prop.key.name) : prop.key;
const maybeMemoise = scope.maybeGenerateMemoised(key);
if (maybeMemoise) {
body.push(_core.types.expressionStatement(_core.types.assignmentExpression("=", maybeMemoise, key)));
body.push(_core().types.expressionStatement(_core().types.assignmentExpression("=", maybeMemoise, key)));
key = maybeMemoise;
}
body.push.apply(body, buildMutatorMapAssign({
body.push(...buildMutatorMapAssign({
MUTATOR_MAP_REF: getMutatorId(),
KEY: _core.types.cloneNode(key),
KEY: _core().types.cloneNode(key),
VALUE: getValue(prop),
KIND: _core.types.identifier(prop.kind)
KIND: _core().types.identifier(prop.kind)
}));

@@ -54,21 +78,8 @@ }

function pushComputedPropsLoose(info) {
for (var _iterator = info.computedProps, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref2;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref2 = _iterator[_i++];
for (const prop of info.computedProps) {
if (prop.kind === "get" || prop.kind === "set") {
pushMutatorDefine(info, prop);
} else {
_i = _iterator.next();
if (_i.done) break;
_ref2 = _i.value;
pushAssign(_core().types.cloneNode(info.objId), prop, info.body);
}
var _prop = _ref2;
if (_prop.kind === "get" || _prop.kind === "set") {
pushMutatorDefine(info, _prop);
} else {
pushAssign(_core.types.cloneNode(info.objId), _prop, info.body);
}
}

@@ -78,34 +89,23 @@ }

function pushComputedPropsSpec(info) {
var objId = info.objId,
body = info.body,
computedProps = info.computedProps,
state = info.state;
const {
objId,
body,
computedProps,
state
} = info;
for (var _iterator2 = computedProps, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref3;
for (const prop of computedProps) {
const key = _core().types.toComputedKey(prop);
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}
var _prop2 = _ref3;
var key = _core.types.toComputedKey(_prop2);
if (_prop2.kind === "get" || _prop2.kind === "set") {
pushMutatorDefine(info, _prop2);
} else if (_core.types.isStringLiteral(key, {
if (prop.kind === "get" || prop.kind === "set") {
pushMutatorDefine(info, prop);
} else if (_core().types.isStringLiteral(key, {
value: "__proto__"
})) {
pushAssign(objId, _prop2, body);
pushAssign(objId, prop, body);
} else {
if (computedProps.length === 1) {
return _core.types.callExpression(state.addHelper("defineProperty"), [info.initPropExpression, key, getValue(_prop2)]);
return _core().types.callExpression(state.addHelper("defineProperty"), [info.initPropExpression, key, getValue(prop)]);
} else {
body.push(_core.types.expressionStatement(_core.types.callExpression(state.addHelper("defineProperty"), [_core.types.cloneNode(objId), key, getValue(_prop2)])));
body.push(_core().types.expressionStatement(_core().types.callExpression(state.addHelper("defineProperty"), [_core().types.cloneNode(objId), key, getValue(prop)])));
}

@@ -119,11 +119,11 @@ }

ObjectExpression: {
exit: function exit(path, state) {
var node = path.node,
parent = path.parent,
scope = path.scope;
var hasComputed = false;
var _arr = node.properties;
exit(path, state) {
const {
node,
parent,
scope
} = path;
let hasComputed = false;
for (var _i3 = 0; _i3 < _arr.length; _i3++) {
var prop = _arr[_i3];
for (const prop of node.properties) {
hasComputed = prop.computed === true;

@@ -134,21 +134,8 @@ if (hasComputed) break;

if (!hasComputed) return;
var initProps = [];
var computedProps = [];
var foundComputed = false;
const initProps = [];
const computedProps = [];
let foundComputed = false;
for (var _iterator3 = node.properties, _isArray3 = Array.isArray(_iterator3), _i4 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref4;
if (_isArray3) {
if (_i4 >= _iterator3.length) break;
_ref4 = _iterator3[_i4++];
} else {
_i4 = _iterator3.next();
if (_i4.done) break;
_ref4 = _i4.value;
}
var _prop4 = _ref4;
if (_prop4.computed) {
for (const prop of node.properties) {
if (prop.computed) {
foundComputed = true;

@@ -158,37 +145,37 @@ }

if (foundComputed) {
computedProps.push(_prop4);
computedProps.push(prop);
} else {
initProps.push(_prop4);
initProps.push(prop);
}
}
var objId = scope.generateUidIdentifierBasedOnNode(parent);
const objId = scope.generateUidIdentifierBasedOnNode(parent);
var initPropExpression = _core.types.objectExpression(initProps);
const initPropExpression = _core().types.objectExpression(initProps);
var body = [];
body.push(_core.types.variableDeclaration("var", [_core.types.variableDeclarator(objId, initPropExpression)]));
var mutatorRef;
const body = [];
body.push(_core().types.variableDeclaration("var", [_core().types.variableDeclarator(objId, initPropExpression)]));
let mutatorRef;
var getMutatorId = function getMutatorId() {
const getMutatorId = function () {
if (!mutatorRef) {
mutatorRef = scope.generateUidIdentifier("mutatorMap");
body.push(_core.types.variableDeclaration("var", [_core.types.variableDeclarator(mutatorRef, _core.types.objectExpression([]))]));
body.push(_core().types.variableDeclaration("var", [_core().types.variableDeclarator(mutatorRef, _core().types.objectExpression([]))]));
}
return _core.types.cloneNode(mutatorRef);
return _core().types.cloneNode(mutatorRef);
};
var single = pushComputedProps({
scope: scope,
objId: objId,
body: body,
computedProps: computedProps,
initPropExpression: initPropExpression,
getMutatorId: getMutatorId,
state: state
const single = pushComputedProps({
scope,
objId,
body,
computedProps,
initPropExpression,
getMutatorId,
state
});
if (mutatorRef) {
body.push(_core.types.expressionStatement(_core.types.callExpression(state.addHelper("defineEnumerableProperties"), [_core.types.cloneNode(objId), _core.types.cloneNode(mutatorRef)])));
body.push(_core().types.expressionStatement(_core().types.callExpression(state.addHelper("defineEnumerableProperties"), [_core().types.cloneNode(objId), _core().types.cloneNode(mutatorRef)])));
}

@@ -199,6 +186,7 @@

} else {
body.push(_core.types.expressionStatement(_core.types.cloneNode(objId)));
body.push(_core().types.expressionStatement(_core().types.cloneNode(objId)));
path.replaceWithMultiple(body);
}
}
}

@@ -205,0 +193,0 @@ }

{
"name": "@babel/plugin-transform-computed-properties",
"version": "7.0.0-beta.42",
"version": "7.0.0-beta.43",
"description": "Compile ES2015 computed properties to ES5",

@@ -12,11 +12,11 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-computed-properties",

"dependencies": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
"@babel/helper-plugin-utils": "7.0.0-beta.43"
},
"peerDependencies": {
"@babel/core": "7.0.0-beta.42"
"@babel/core": "7.0.0-beta.43"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.42",
"@babel/helper-plugin-test-runner": "7.0.0-beta.42"
"@babel/core": "7.0.0-beta.43",
"@babel/helper-plugin-test-runner": "7.0.0-beta.43"
}
}
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