@babel/plugin-proposal-object-rest-spread
Advanced tools
Comparing version 7.0.0-beta.31 to 7.0.0-beta.32
131
lib/index.js
@@ -8,7 +8,14 @@ "use strict"; | ||
var _core = require("@babel/core"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _default(_ref) { | ||
var t = _ref.types; | ||
function _default(api, opts) { | ||
var _opts$useBuiltIns = opts.useBuiltIns, | ||
useBuiltIns = _opts$useBuiltIns === void 0 ? false : _opts$useBuiltIns; | ||
if (typeof useBuiltIns !== "boolean") { | ||
throw new Error(".useBuiltIns must be a boolean, or undefined"); | ||
} | ||
function hasRestElement(path) { | ||
@@ -27,16 +34,16 @@ var foundRestElement = false; | ||
for (var _iterator = node.properties, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { | ||
var _ref2; | ||
var _ref; | ||
if (_isArray) { | ||
if (_i >= _iterator.length) break; | ||
_ref2 = _iterator[_i++]; | ||
_ref = _iterator[_i++]; | ||
} else { | ||
_i = _iterator.next(); | ||
if (_i.done) break; | ||
_ref2 = _i.value; | ||
_ref = _i.value; | ||
} | ||
var _prop = _ref2; | ||
var _prop = _ref; | ||
if (t.isSpreadElement(_prop)) { | ||
if (_core.types.isSpreadElement(_prop)) { | ||
return true; | ||
@@ -55,19 +62,19 @@ } | ||
for (var _iterator2 = props, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { | ||
var _ref3; | ||
var _ref2; | ||
if (_isArray2) { | ||
if (_i2 >= _iterator2.length) break; | ||
_ref3 = _iterator2[_i2++]; | ||
_ref2 = _iterator2[_i2++]; | ||
} else { | ||
_i2 = _iterator2.next(); | ||
if (_i2.done) break; | ||
_ref3 = _i2.value; | ||
_ref2 = _i2.value; | ||
} | ||
var _prop2 = _ref3; | ||
var _prop2 = _ref2; | ||
if (t.isIdentifier(_prop2.key) && !_prop2.computed) { | ||
keys.push(t.stringLiteral(_prop2.key.name)); | ||
} else if (t.isLiteral(_prop2.key)) { | ||
keys.push(t.stringLiteral(String(_prop2.key.value))); | ||
if (_core.types.isIdentifier(_prop2.key) && !_prop2.computed) { | ||
keys.push(_core.types.stringLiteral(_prop2.key.name)); | ||
} else if (_core.types.isLiteral(_prop2.key)) { | ||
keys.push(_core.types.stringLiteral(String(_prop2.key.value))); | ||
} else { | ||
@@ -89,14 +96,14 @@ keys.push(_prop2.key); | ||
for (var _iterator3 = path.get("properties"), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { | ||
var _ref4; | ||
var _ref3; | ||
if (_isArray3) { | ||
if (_i3 >= _iterator3.length) break; | ||
_ref4 = _iterator3[_i3++]; | ||
_ref3 = _iterator3[_i3++]; | ||
} else { | ||
_i3 = _iterator3.next(); | ||
if (_i3.done) break; | ||
_ref4 = _i3.value; | ||
_ref3 = _i3.value; | ||
} | ||
var _propPath = _ref4; | ||
var _propPath = _ref3; | ||
@@ -107,3 +114,5 @@ var key = _propPath.get("key"); | ||
var identifier = path.scope.generateUidIdentifierBasedOnNode(key.node); | ||
var declarator = t.variableDeclarator(identifier, key.node); | ||
var declarator = _core.types.variableDeclarator(identifier, key.node); | ||
impureComputedPropertyDeclarators.push(declarator); | ||
@@ -120,4 +129,7 @@ key.replaceWith(identifier); | ||
var last = props[props.length - 1]; | ||
t.assertRestElement(last.node); | ||
var restElement = t.clone(last.node); | ||
_core.types.assertRestElement(last.node); | ||
var restElement = _core.types.clone(last.node); | ||
last.remove(); | ||
@@ -133,8 +145,8 @@ var impureComputedPropertyDeclarators = replaceImpureComputedKeys(path); | ||
if (!allLiteral) { | ||
keyExpression = t.callExpression(t.memberExpression(t.arrayExpression(keys), t.identifier("map")), [file.addHelper("toPropertyKey")]); | ||
keyExpression = _core.types.callExpression(_core.types.memberExpression(_core.types.arrayExpression(keys), _core.types.identifier("map")), [file.addHelper("toPropertyKey")]); | ||
} else { | ||
keyExpression = t.arrayExpression(keys); | ||
keyExpression = _core.types.arrayExpression(keys); | ||
} | ||
return [impureComputedPropertyDeclarators, restElement.argument, t.callExpression(file.addHelper("objectWithoutProperties"), [objRef, keyExpression])]; | ||
return [impureComputedPropertyDeclarators, restElement.argument, _core.types.callExpression(file.addHelper("objectWithoutProperties"), [objRef, keyExpression])]; | ||
} | ||
@@ -158,3 +170,5 @@ | ||
var uid = parentPath.scope.generateUidIdentifier("ref"); | ||
var declar = t.variableDeclaration("let", [t.variableDeclarator(paramPath.node, uid)]); | ||
var declar = _core.types.variableDeclaration("let", [_core.types.variableDeclarator(paramPath.node, uid)]); | ||
parentPath.ensureBlock(); | ||
@@ -188,6 +202,6 @@ parentPath.get("body").unshiftContainer("body", declar); | ||
if (this.originalPath.node.id.properties.length > 1 && !t.isIdentifier(this.originalPath.node.init)) { | ||
if (this.originalPath.node.id.properties.length > 1 && !_core.types.isIdentifier(this.originalPath.node.init)) { | ||
var initRef = path.scope.generateUidIdentifierBasedOnNode(this.originalPath.node.init, "ref"); | ||
this.originalPath.insertBefore(t.variableDeclarator(initRef, this.originalPath.node.init)); | ||
this.originalPath.replaceWith(t.variableDeclarator(this.originalPath.node.id, initRef)); | ||
this.originalPath.insertBefore(_core.types.variableDeclarator(initRef, this.originalPath.node.init)); | ||
this.originalPath.replaceWith(_core.types.variableDeclarator(this.originalPath.node.id, initRef)); | ||
return; | ||
@@ -208,3 +222,3 @@ } | ||
refPropertyPath.forEach(function (prop) { | ||
ref = t.memberExpression(ref, t.identifier(prop)); | ||
ref = _core.types.memberExpression(ref, _core.types.identifier(prop)); | ||
}); | ||
@@ -222,5 +236,6 @@ } | ||
t.assertIdentifier(argument); | ||
_core.types.assertIdentifier(argument); | ||
insertionPath.insertBefore(impureComputedPropertyDeclarators); | ||
insertionPath.insertAfter(t.variableDeclarator(argument, callExpression)); | ||
insertionPath.insertAfter(_core.types.variableDeclarator(argument, callExpression)); | ||
insertionPath = insertionPath.getSibling(insertionPath.key + 1); | ||
@@ -245,8 +260,9 @@ | ||
for (var name in path.getOuterBindingIdentifiers(path)) { | ||
var id = t.identifier(name); | ||
specifiers.push(t.exportSpecifier(id, id)); | ||
var id = _core.types.identifier(name); | ||
specifiers.push(_core.types.exportSpecifier(id, id)); | ||
} | ||
path.replaceWith(declaration.node); | ||
path.insertAfter(t.exportNamedDeclaration(null, specifiers)); | ||
path.insertAfter(_core.types.exportNamedDeclaration(null, specifiers)); | ||
}, | ||
@@ -263,3 +279,3 @@ CatchClause: function CatchClause(path) { | ||
var ref = path.scope.generateUidIdentifierBasedOnNode(path.node.right, "ref"); | ||
nodes.push(t.variableDeclaration("var", [t.variableDeclarator(ref, path.node.right)])); | ||
nodes.push(_core.types.variableDeclaration("var", [_core.types.variableDeclarator(ref, path.node.right)])); | ||
@@ -272,12 +288,13 @@ var _createObjectSpread2 = createObjectSpread(leftPath, file, ref), | ||
if (impureComputedPropertyDeclarators.length > 0) { | ||
nodes.push(t.variableDeclaration("var", impureComputedPropertyDeclarators)); | ||
nodes.push(_core.types.variableDeclaration("var", impureComputedPropertyDeclarators)); | ||
} | ||
var nodeWithoutSpread = t.clone(path.node); | ||
var nodeWithoutSpread = _core.types.clone(path.node); | ||
nodeWithoutSpread.right = ref; | ||
nodes.push(t.expressionStatement(nodeWithoutSpread)); | ||
nodes.push(t.toStatement(t.assignmentExpression("=", argument, callExpression))); | ||
nodes.push(_core.types.expressionStatement(nodeWithoutSpread)); | ||
nodes.push(_core.types.toStatement(_core.types.assignmentExpression("=", argument, callExpression))); | ||
if (ref) { | ||
nodes.push(t.expressionStatement(ref)); | ||
nodes.push(_core.types.expressionStatement(ref)); | ||
} | ||
@@ -294,26 +311,20 @@ | ||
if (t.isObjectPattern(left) && hasRestElement(leftPath)) { | ||
if (_core.types.isObjectPattern(left) && hasRestElement(leftPath)) { | ||
var temp = scope.generateUidIdentifier("ref"); | ||
node.left = t.variableDeclaration("var", [t.variableDeclarator(temp)]); | ||
node.left = _core.types.variableDeclaration("var", [_core.types.variableDeclarator(temp)]); | ||
path.ensureBlock(); | ||
node.body.body.unshift(t.variableDeclaration("var", [t.variableDeclarator(left, temp)])); | ||
node.body.body.unshift(_core.types.variableDeclaration("var", [_core.types.variableDeclarator(left, temp)])); | ||
return; | ||
} | ||
if (!t.isVariableDeclaration(left)) return; | ||
if (!_core.types.isVariableDeclaration(left)) return; | ||
var pattern = left.declarations[0].id; | ||
if (!t.isObjectPattern(pattern)) return; | ||
if (!_core.types.isObjectPattern(pattern)) return; | ||
var key = scope.generateUidIdentifier("ref"); | ||
node.left = t.variableDeclaration(left.kind, [t.variableDeclarator(key, null)]); | ||
node.left = _core.types.variableDeclaration(left.kind, [_core.types.variableDeclarator(key, null)]); | ||
path.ensureBlock(); | ||
node.body.body.unshift(t.variableDeclaration(node.left.kind, [t.variableDeclarator(pattern, key)])); | ||
node.body.body.unshift(_core.types.variableDeclaration(node.left.kind, [_core.types.variableDeclarator(pattern, key)])); | ||
}, | ||
ObjectExpression: function ObjectExpression(path, file) { | ||
if (!hasSpread(path.node)) return; | ||
var useBuiltIns = file.opts.useBuiltIns || false; | ||
if (typeof useBuiltIns !== "boolean") { | ||
throw new Error("proposal-object-rest-spread currently only accepts a boolean " + "option for useBuiltIns (defaults to false)"); | ||
} | ||
var args = []; | ||
@@ -324,3 +335,3 @@ var props = []; | ||
if (!props.length) return; | ||
args.push(t.objectExpression(props)); | ||
args.push(_core.types.objectExpression(props)); | ||
props = []; | ||
@@ -334,3 +345,3 @@ } | ||
if (t.isSpreadElement(prop)) { | ||
if (_core.types.isSpreadElement(prop)) { | ||
push(); | ||
@@ -345,8 +356,8 @@ args.push(prop.argument); | ||
if (!t.isObjectExpression(args[0])) { | ||
args.unshift(t.objectExpression([])); | ||
if (!_core.types.isObjectExpression(args[0])) { | ||
args.unshift(_core.types.objectExpression([])); | ||
} | ||
var helper = useBuiltIns ? t.memberExpression(t.identifier("Object"), t.identifier("assign")) : file.addHelper("extends"); | ||
path.replaceWith(t.callExpression(helper, args)); | ||
var helper = useBuiltIns ? _core.types.memberExpression(_core.types.identifier("Object"), _core.types.identifier("assign")) : file.addHelper("extends"); | ||
path.replaceWith(_core.types.callExpression(helper, args)); | ||
} | ||
@@ -353,0 +364,0 @@ } |
{ | ||
"name": "@babel/plugin-proposal-object-rest-spread", | ||
"version": "7.0.0-beta.31", | ||
"version": "7.0.0-beta.32", | ||
"description": "Compile object rest and spread to ES5", | ||
@@ -12,11 +12,11 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-object-rest-spread", | ||
"dependencies": { | ||
"@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.31" | ||
"@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.32" | ||
}, | ||
"peerDependencies": { | ||
"@babel/core": "7.0.0-beta.31" | ||
"@babel/core": "7.0.0-beta.32" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "7.0.0-beta.31", | ||
"@babel/helper-plugin-test-runner": "7.0.0-beta.31" | ||
"@babel/core": "7.0.0-beta.32", | ||
"@babel/helper-plugin-test-runner": "7.0.0-beta.32" | ||
} | ||
} |
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
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
14143
276
+ Added@babel/code-frame@7.0.0-beta.32(transitive)
+ Added@babel/core@7.0.0-beta.32(transitive)
+ Added@babel/generator@7.0.0-beta.32(transitive)
+ Added@babel/helper-function-name@7.0.0-beta.32(transitive)
+ Added@babel/helper-get-function-arity@7.0.0-beta.32(transitive)
+ Added@babel/helpers@7.0.0-beta.32(transitive)
+ Added@babel/plugin-syntax-object-rest-spread@7.0.0-beta.32(transitive)
+ Added@babel/template@7.0.0-beta.32(transitive)
+ Added@babel/traverse@7.0.0-beta.32(transitive)
+ Added@babel/types@7.0.0-beta.32(transitive)
+ Addedbabylon@7.0.0-beta.32(transitive)
- Removed@babel/code-frame@7.0.0-beta.31(transitive)
- Removed@babel/core@7.0.0-beta.31(transitive)
- Removed@babel/generator@7.0.0-beta.31(transitive)
- Removed@babel/helper-function-name@7.0.0-beta.31(transitive)
- Removed@babel/helper-get-function-arity@7.0.0-beta.31(transitive)
- Removed@babel/helpers@7.0.0-beta.31(transitive)
- Removed@babel/plugin-syntax-object-rest-spread@7.0.0-beta.31(transitive)
- Removed@babel/template@7.0.0-beta.31(transitive)
- Removed@babel/traverse@7.0.0-beta.31(transitive)
- Removed@babel/types@7.0.0-beta.31(transitive)
- Removedbabylon@7.0.0-beta.31(transitive)
Updated@babel/plugin-syntax-object-rest-spread@7.0.0-beta.32