Socket
Socket
Sign inDemoInstall

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

Package Overview
Dependencies
Maintainers
6
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.9.0 to 7.9.5

73

lib/index.js

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

var _pluginTransformParameters = require("@babel/plugin-transform-parameters");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -172,5 +174,5 @@

function replaceRestElement(parentPath, paramPath) {
function replaceRestElement(parentPath, paramPath, container) {
if (paramPath.isAssignmentPattern()) {
replaceRestElement(parentPath, paramPath.get("left"));
replaceRestElement(parentPath, paramPath.get("left"), container);
return;

@@ -183,3 +185,3 @@ }

for (let i = 0; i < elements.length; i++) {
replaceRestElement(parentPath, elements[i]);
replaceRestElement(parentPath, elements[i], container);
}

@@ -193,4 +195,9 @@ }

parentPath.ensureBlock();
parentPath.get("body").unshiftContainer("body", declar);
if (container) {
container.push(declar);
} else {
parentPath.ensureBlock();
parentPath.get("body").unshiftContainer("body", declar);
}
paramPath.replaceWith(_core.types.cloneNode(uid));

@@ -206,6 +213,58 @@ }

const params = path.get("params");
const paramsWithRestElement = new Set();
const idsInRestParams = new Set();
for (let i = params.length - 1; i >= 0; i--) {
replaceRestElement(params[i].parentPath, params[i]);
for (let i = 0; i < params.length; ++i) {
const param = params[i];
if (hasRestElement(param)) {
paramsWithRestElement.add(i);
for (const name of Object.keys(param.getBindingIdentifiers())) {
idsInRestParams.add(name);
}
}
}
let idInRest = false;
const IdentifierHandler = function (path, functionScope) {
const name = path.node.name;
if (path.scope.getBinding(name) === functionScope.getBinding(name) && idsInRestParams.has(name)) {
idInRest = true;
path.stop();
}
};
let i;
for (i = 0; i < params.length && !idInRest; ++i) {
const param = params[i];
if (!paramsWithRestElement.has(i)) {
if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {
IdentifierHandler(path, path.scope);
} else {
param.traverse({
"Scope|TypeAnnotation|TSTypeAnnotation": path => path.skip(),
"ReferencedIdentifier|BindingIdentifier": IdentifierHandler
}, path.scope);
}
}
}
if (!idInRest) {
for (let i = 0; i < params.length; ++i) {
const param = params[i];
if (paramsWithRestElement.has(i)) {
replaceRestElement(param.parentPath, param);
}
}
} else {
const shouldTransformParam = idx => idx >= i - 1 || paramsWithRestElement.has(idx);
(0, _pluginTransformParameters.convertFunctionParams)(path, loose, shouldTransformParam, replaceRestElement);
}
},

@@ -212,0 +271,0 @@

7

package.json
{
"name": "@babel/plugin-proposal-object-rest-spread",
"version": "7.9.0",
"version": "7.9.5",
"description": "Compile object rest and spread to ES5",

@@ -16,3 +16,4 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-object-rest-spread",

"@babel/helper-plugin-utils": "^7.8.3",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0"
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
"@babel/plugin-transform-parameters": "^7.9.5"
},

@@ -26,3 +27,3 @@ "peerDependencies": {

},
"gitHead": "8d5e422be27251cfaadf8dd2536b31b4a5024b02"
"gitHead": "5b97e77e030cf3853a147fdff81844ea4026219d"
}
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