Socket
Socket
Sign inDemoInstall

babel-plugin-transform-es2015-parameters

Package Overview
Dependencies
Maintainers
6
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

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

Comparing version 6.3.13 to 6.3.18

52

lib/rest.js

@@ -21,2 +21,4 @@ "use strict";

var loadRest = _babelTemplate2["default"]("\n ARGUMENTS.length <= KEY || ARGUMENTS[KEY] === undefined ? undefined : ARGUMENTS[KEY]\n");
var memberExpressionOptimisationVisitor = {

@@ -97,18 +99,2 @@ Scope: function Scope(path, state) {

function optimiseMemberExpression(parent, offset) {
if (offset === 0) return;
var newExpr = undefined;
var prop = parent.property;
if (t.isLiteral(prop)) {
prop.value += offset;
prop.raw = String(prop.value);
} else {
// // UnaryExpression, BinaryExpression
newExpr = t.binaryExpression("+", prop, t.numericLiteral(offset));
parent.property = newExpr;
}
}
function hasRest(node) {

@@ -133,12 +119,22 @@ return t.isRestElement(node.params[node.params.length - 1]);

// support patterns
if (t.isPattern(rest)) {
var pattern = rest;
rest = scope.generateUidIdentifier("ref");
function optimiseCandidate(parent, parentPath, offset) {
if (t.isReturnStatement(parentPath.parent) || t.isIdentifier(parentPath.parent.id)) {
parentPath.replaceWith(loadRest({
ARGUMENTS: argsId,
KEY: t.numericLiteral(parent.property.value + offset)
}));
} else {
if (offset === 0) return;
var newExpr = undefined;
var prop = parent.property;
var declar = t.variableDeclaration("let", pattern.elements.map(function (elem, index) {
var accessExpr = t.memberExpression(rest, t.numericLiteral(index), true);
return t.variableDeclarator(elem, accessExpr);
}));
node.body.body.unshift(declar);
if (t.isLiteral(prop)) {
prop.value += offset;
prop.raw = String(prop.value);
} else {
// UnaryExpression, BinaryExpression
newExpr = t.binaryExpression("+", prop, t.numericLiteral(offset));
parent.property = newExpr;
}
}
}

@@ -184,5 +180,3 @@

candidate.replaceWith(argsId);
if (candidate.parentPath.isMemberExpression()) {
optimiseMemberExpression(candidate.parent, state.offset);
}
optimiseCandidate(candidate.parent, candidate.parentPath, state.offset);
}

@@ -198,4 +192,2 @@ }

//
var start = t.numericLiteral(node.params.length);

@@ -202,0 +194,0 @@ var key = scope.generateUidIdentifier("key");

{
"name": "babel-plugin-transform-es2015-parameters",
"version": "6.3.13",
"version": "6.3.18",
"description": "Compile ES2015 default and rest parameters to ES5",

@@ -13,3 +13,3 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-parameters",

"babel-template": "^6.3.13",
"babel-types": "^6.3.13",
"babel-types": "^6.3.18",
"babel-runtime": "^5.0.0"

@@ -16,0 +16,0 @@ },

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