Socket
Socket
Sign inDemoInstall

babel-plugin-transform-es2015-destructuring

Package Overview
Dependencies
Maintainers
4
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-transform-es2015-destructuring - npm Package Compare versions

Comparing version 7.0.0-alpha.15 to 7.0.0-alpha.16

191

lib/index.js

@@ -8,18 +8,8 @@ "use strict";

function variableDeclarationHasPattern(node) {
for (var _iterator = node.declarations, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref2;
var _arr = node.declarations;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref2 = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref2 = _i.value;
}
for (var _i = 0; _i < _arr.length; _i++) {
var declar = _arr[_i];
var declar = _ref2;
if (t.isPattern(declar.id)) {

@@ -29,2 +19,3 @@ return true;

}
return false;

@@ -34,16 +25,7 @@ }

function hasRest(pattern) {
for (var _iterator2 = pattern.elements, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref3;
var _arr2 = pattern.elements;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}
for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
var elem = _arr2[_i2];
var elem = _ref3;
if (t.isRestElement(elem)) {

@@ -53,2 +35,3 @@ return true;

}
return false;

@@ -68,4 +51,2 @@ }

function DestructuringTransformer(opts) {
_classCallCheck(this, DestructuringTransformer);
this.blockHoist = opts.blockHoist;

@@ -83,3 +64,2 @@ this.operator = opts.operator;

if (t.isMemberExpression(id)) op = "=";
var node = void 0;

@@ -94,3 +74,2 @@

node._blockHoist = this.blockHoist;
return node;

@@ -126,16 +105,12 @@ };

DestructuringTransformer.prototype.pushAssignmentPattern = function pushAssignmentPattern(pattern, valueRef) {
var tempValueRef = this.scope.generateUidIdentifierBasedOnNode(valueRef);
var declar = t.variableDeclaration("var", [t.variableDeclarator(tempValueRef, valueRef)]);
declar._blockHoist = this.blockHoist;
this.nodes.push(declar);
var tempConditional = t.conditionalExpression(t.binaryExpression("===", tempValueRef, t.identifier("undefined")), pattern.right, tempValueRef);
var left = pattern.left;
var left = pattern.left;
if (t.isPattern(left)) {
var tempValueDefault = t.expressionStatement(t.assignmentExpression("=", tempValueRef, tempConditional));
tempValueDefault._blockHoist = this.blockHoist;
this.nodes.push(tempValueDefault);

@@ -149,3 +124,2 @@ this.push(left, tempValueRef);

DestructuringTransformer.prototype.pushObjectRest = function pushObjectRest(pattern, objRef, spreadProp, spreadPropIndex) {
var keys = [];

@@ -155,11 +129,10 @@

var prop = pattern.properties[i];
if (i >= spreadPropIndex) break;
if (t.isRestElement(prop)) continue;
var key = prop.key;
var key = prop.key;
if (t.isIdentifier(key) && !prop.computed) {
key = t.stringLiteral(prop.key.name);
}
keys.push(key);

@@ -169,3 +142,2 @@ }

keys = t.arrayExpression(keys);
var value = t.callExpression(this.file.addHelper("objectWithoutProperties"), [objRef, keys]);

@@ -177,3 +149,2 @@ this.nodes.push(this.buildVariableAssignment(spreadProp.argument, value));

if (t.isLiteral(prop.key)) prop.computed = true;
var pattern = prop.value;

@@ -190,3 +161,2 @@ var objRef = t.memberExpression(propRef, prop.key, prop.computed);

DestructuringTransformer.prototype.pushObjectPattern = function pushObjectPattern(pattern, objRef) {
if (!pattern.properties.length) {

@@ -204,2 +174,3 @@ this.nodes.push(t.expressionStatement(t.callExpression(this.file.addHelper("objectDestructuringEmpty"), [objRef])));

var prop = pattern.properties[i];
if (t.isRestElement(prop)) {

@@ -215,4 +186,4 @@ this.pushObjectRest(pattern, objRef, prop, i);

if (!t.isArrayExpression(arr)) return false;
if (pattern.elements.length > arr.elements.length) return;
if (pattern.elements.length > arr.elements.length) return;
if (pattern.elements.length < arr.elements.length && !hasRest(pattern)) {

@@ -222,39 +193,16 @@ return false;

for (var _iterator3 = pattern.elements, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref4;
var _arr3 = pattern.elements;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref4 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref4 = _i3.value;
}
var elem = _ref4;
for (var _i3 = 0; _i3 < _arr3.length; _i3++) {
var elem = _arr3[_i3];
if (!elem) return false;
if (t.isMemberExpression(elem)) return false;
}
for (var _iterator4 = arr.elements, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref5;
var _arr4 = arr.elements;
if (_isArray4) {
if (_i4 >= _iterator4.length) break;
_ref5 = _iterator4[_i4++];
} else {
_i4 = _iterator4.next();
if (_i4.done) break;
_ref5 = _i4.value;
}
var _elem = _ref5;
for (var _i4 = 0; _i4 < _arr4.length; _i4++) {
var _elem = _arr4[_i4];
if (t.isSpreadElement(_elem)) return false;
if (t.isCallExpression(_elem)) return false;
if (t.isMemberExpression(_elem)) return false;

@@ -264,3 +212,6 @@ }

var bindings = t.getBindingIdentifiers(pattern);
var state = { deopt: false, bindings: bindings };
var state = {
deopt: false,
bindings: bindings
};
this.scope.traverse(arr, arrayUnpackVisitor, state);

@@ -273,2 +224,3 @@ return !state.deopt;

var elem = pattern.elements[i];
if (t.isRestElement(elem)) {

@@ -290,3 +242,2 @@ this.push(elem.argument, t.arrayExpression(arr.elements.slice(i)));

var count = !hasRest(pattern) && pattern.elements.length;
var toArray = this.toArray(arrayRef, count);

@@ -304,5 +255,3 @@

var elem = pattern.elements[i];
if (!elem) continue;
var elemRef = void 0;

@@ -313,3 +262,2 @@

elemRef = t.callExpression(t.memberExpression(elemRef, t.identifier("slice")), [t.numericLiteral(i)]);
elem = elem.argument;

@@ -325,5 +273,5 @@ } else {

DestructuringTransformer.prototype.init = function init(pattern, ref) {
if (!t.isArrayExpression(ref) && !t.isMemberExpression(ref)) {
var memo = this.scope.maybeGenerateMemoised(ref, true);
if (memo) {

@@ -336,3 +284,2 @@ this.nodes.push(this.buildVariableDeclaration(memo, ref));

this.push(pattern, ref);
return this.nodes;

@@ -350,3 +297,2 @@ };

if (!variableDeclarationHasPattern(declaration.node)) return;
var specifiers = [];

@@ -365,15 +311,9 @@

scope = path.scope;
var left = node.left;
if (t.isPattern(left)) {
var temp = scope.generateUidIdentifier("ref");
node.left = t.variableDeclaration("var", [t.variableDeclarator(temp)]);
path.ensureBlock();
node.body.body.unshift(t.variableDeclaration("var", [t.variableDeclarator(left, temp)]));
return;

@@ -383,11 +323,7 @@ }

if (!t.isVariableDeclaration(left)) return;
var pattern = left.declarations[0].id;
if (!t.isPattern(pattern)) return;
var key = scope.generateUidIdentifier("ref");
node.left = t.variableDeclaration(left.kind, [t.variableDeclarator(key, null)]);
var nodes = [];
var destructuring = new DestructuringTransformer({

@@ -399,22 +335,15 @@ kind: left.kind,

});
destructuring.init(pattern, key);
path.ensureBlock();
var block = node.body;
block.body = nodes.concat(block.body);
},
CatchClause: function CatchClause(_ref6, file) {
var node = _ref6.node,
scope = _ref6.scope;
CatchClause: function CatchClause(_ref2, file) {
var node = _ref2.node,
scope = _ref2.scope;
var pattern = node.param;
if (!t.isPattern(pattern)) return;
var ref = scope.generateUidIdentifier("ref");
node.param = ref;
var nodes = [];
var destructuring = new DestructuringTransformer({

@@ -427,3 +356,2 @@ kind: "let",

destructuring.init(pattern, ref);
node.body.body = nodes.concat(node.body.body);

@@ -434,7 +362,4 @@ },

scope = path.scope;
if (!t.isPattern(node.left)) return;
var nodes = [];
var destructuring = new DestructuringTransformer({

@@ -446,7 +371,6 @@ operator: node.operator,

});
var ref = void 0;
var ref = void 0;
if (path.isCompletionRecord() || !path.parentPath.isExpressionStatement()) {
ref = scope.generateUidIdentifierBasedOnNode(node.right, "ref");
nodes.push(t.variableDeclaration("var", [t.variableDeclarator(ref, node.right)]));

@@ -471,7 +395,5 @@

parent = path.parent;
if (t.isForXStatement(parent)) return;
if (!parent || !path.container) return;
if (!variableDeclarationHasPattern(node)) return;
var nodeKind = node.kind;

@@ -483,6 +405,4 @@ var nodes = [];

declar = node.declarations[i];
var patternId = declar.init;
var pattern = declar.id;
var destructuring = new DestructuringTransformer({

@@ -508,17 +428,7 @@ blockHoist: node._blockHoist,

var nodesOut = [];
for (var _iterator5 = nodes, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref7;
if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref7 = _iterator5[_i5++];
} else {
_i5 = _iterator5.next();
if (_i5.done) break;
_ref7 = _i5.value;
}
for (var _i5 = 0; _i5 < nodes.length; _i5++) {
var _node = nodes[_i5];
var tail = nodesOut[nodesOut.length - 1];
var _node = _ref7;
var tail = nodesOut[nodesOut.length - 1];
if (tail && t.isVariableDeclaration(tail) && t.isVariableDeclaration(_node)) {

@@ -534,30 +444,19 @@ var _tail$declarations;

for (var _iterator6 = nodesOut, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
var _ref8;
for (var _i6 = 0; _i6 < nodesOut.length; _i6++) {
var nodeOut = nodesOut[_i6];
if (!nodeOut.declarations) continue;
if (_isArray6) {
if (_i6 >= _iterator6.length) break;
_ref8 = _iterator6[_i6++];
} else {
_i6 = _iterator6.next();
if (_i6.done) break;
_ref8 = _i6.value;
}
for (var _iterator = nodeOut.declarations, _isArray = Array.isArray(_iterator), _i7 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref3;
var nodeOut = _ref8;
if (!nodeOut.declarations) continue;
for (var _iterator7 = nodeOut.declarations, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
var _ref9;
if (_isArray7) {
if (_i7 >= _iterator7.length) break;
_ref9 = _iterator7[_i7++];
if (_isArray) {
if (_i7 >= _iterator.length) break;
_ref3 = _iterator[_i7++];
} else {
_i7 = _iterator7.next();
_i7 = _iterator.next();
if (_i7.done) break;
_ref9 = _i7.value;
_ref3 = _i7.value;
}
var declaration = _ref9;
var declaration = _ref3;
var name = declaration.id.name;

@@ -579,4 +478,2 @@

};
};
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
};
{
"name": "babel-plugin-transform-es2015-destructuring",
"version": "7.0.0-alpha.15",
"version": "7.0.0-alpha.16",
"description": "Compile ES2015 destructuring to ES5",

@@ -12,4 +12,4 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-destructuring",

"devDependencies": {
"babel-helper-plugin-test-runner": "7.0.0-alpha.15"
"babel-helper-plugin-test-runner": "7.0.0-alpha.16"
}
}
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