@babel/plugin-transform-computed-properties
Advanced tools
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" | ||
} | ||
} |
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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
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
7933
157
1
+ Added@babel/code-frame@7.0.0-beta.43(transitive)
+ Added@babel/core@7.0.0-beta.43(transitive)
+ Added@babel/generator@7.0.0-beta.43(transitive)
+ Added@babel/helper-function-name@7.0.0-beta.43(transitive)
+ Added@babel/helper-get-function-arity@7.0.0-beta.43(transitive)
+ Added@babel/helper-plugin-utils@7.0.0-beta.43(transitive)
+ Added@babel/helper-split-export-declaration@7.0.0-beta.43(transitive)
+ Added@babel/helpers@7.0.0-beta.43(transitive)
+ Added@babel/highlight@7.0.0-beta.43(transitive)
+ Added@babel/template@7.0.0-beta.43(transitive)
+ Added@babel/traverse@7.0.0-beta.43(transitive)
+ Added@babel/types@7.0.0-beta.43(transitive)
+ Addedbabylon@7.0.0-beta.43(transitive)
- Removed@babel/code-frame@7.0.0-beta.42(transitive)
- Removed@babel/core@7.0.0-beta.42(transitive)
- Removed@babel/generator@7.0.0-beta.42(transitive)
- Removed@babel/helper-function-name@7.0.0-beta.42(transitive)
- Removed@babel/helper-get-function-arity@7.0.0-beta.42(transitive)
- Removed@babel/helper-plugin-utils@7.0.0-beta.42(transitive)
- Removed@babel/helper-split-export-declaration@7.0.0-beta.42(transitive)
- Removed@babel/helpers@7.0.0-beta.42(transitive)
- Removed@babel/highlight@7.0.0-beta.42(transitive)
- Removed@babel/template@7.0.0-beta.42(transitive)
- Removed@babel/traverse@7.0.0-beta.42(transitive)
- Removed@babel/types@7.0.0-beta.42(transitive)
- Removedbabylon@7.0.0-beta.42(transitive)