Socket
Socket
Sign inDemoInstall

@babel/plugin-proposal-object-rest-spread

Package Overview
Dependencies
Maintainers
4
Versions
86
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-proposal-object-rest-spread - npm Package Compare versions

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"
}
}
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