Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining

Package Overview
Dependencies
Maintainers
4
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining - npm Package Compare versions

Comparing version 7.22.5 to 8.0.0-alpha.0

33

lib/index.js

@@ -1,12 +0,8 @@

'use strict';
import { declare } from '@babel/helper-plugin-utils';
import { transform } from '@babel/plugin-transform-optional-chaining';
import { skipTransparentExprWrappers } from '@babel/helper-skip-transparent-expression-wrappers';
import { types } from '@babel/core';
Object.defineProperty(exports, '__esModule', { value: true });
var helperPluginUtils = require('@babel/helper-plugin-utils');
var pluginTransformOptionalChaining = require('@babel/plugin-transform-optional-chaining');
var helperSkipTransparentExpressionWrappers = require('@babel/helper-skip-transparent-expression-wrappers');
var core = require('@babel/core');
function matchAffectedArguments(argumentNodes) {
const spreadIndex = argumentNodes.findIndex(node => core.types.isSpreadElement(node));
const spreadIndex = argumentNodes.findIndex(node => types.isSpreadElement(node));
return spreadIndex >= 0 && spreadIndex !== argumentNodes.length - 1;

@@ -20,6 +16,6 @@ }

chains.push(optionalPath.node);
optionalPath = helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers(optionalPath.get("object"));
optionalPath = skipTransparentExprWrappers(optionalPath.get("object"));
} else if (optionalPath.isOptionalCallExpression()) {
chains.push(optionalPath.node);
optionalPath = helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers(optionalPath.get("callee"));
optionalPath = skipTransparentExprWrappers(optionalPath.get("callee"));
} else {

@@ -31,3 +27,3 @@ break;

const node = chains[i];
if (core.types.isOptionalCallExpression(node) && matchAffectedArguments(node.arguments)) {
if (types.isOptionalCallExpression(node) && matchAffectedArguments(node.arguments)) {
if (node.optional) {

@@ -37,3 +33,3 @@ return true;

const callee = chains[i + 1];
if (core.types.isOptionalMemberExpression(callee, {
if (types.isOptionalMemberExpression(callee, {
optional: true

@@ -48,7 +44,6 @@ })) {

var index = helperPluginUtils.declare(api => {
var _api$assumption, _api$assumption2;
var index = declare(api => {
api.assertVersion(7);
const noDocumentAll = (_api$assumption = api.assumption("noDocumentAll")) != null ? _api$assumption : false;
const pureGetters = (_api$assumption2 = api.assumption("pureGetters")) != null ? _api$assumption2 : false;
const noDocumentAll = api.assumption("noDocumentAll") ?? false;
const pureGetters = api.assumption("pureGetters") ?? false;
return {

@@ -59,3 +54,3 @@ name: "bugfix-v8-spread-parameters-in-optional-chaining",

if (shouldTransform(path)) {
pluginTransformOptionalChaining.transform(path, {
transform(path, {
noDocumentAll,

@@ -70,3 +65,3 @@ pureGetters

exports["default"] = index;
export { index as default };
//# sourceMappingURL=index.js.map

@@ -1,14 +0,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.shouldTransform = shouldTransform;
var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers");
var _core = require("@babel/core");
import { skipTransparentExprWrappers } from "@babel/helper-skip-transparent-expression-wrappers";
import { types as t } from "@babel/core";
function matchAffectedArguments(argumentNodes) {
const spreadIndex = argumentNodes.findIndex(node => _core.types.isSpreadElement(node));
const spreadIndex = argumentNodes.findIndex(node => t.isSpreadElement(node));
return spreadIndex >= 0 && spreadIndex !== argumentNodes.length - 1;
}
function shouldTransform(path) {
export function shouldTransform(path) {
let optionalPath = path;

@@ -19,6 +13,6 @@ const chains = [];

chains.push(optionalPath.node);
optionalPath = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(optionalPath.get("object"));
optionalPath = skipTransparentExprWrappers(optionalPath.get("object"));
} else if (optionalPath.isOptionalCallExpression()) {
chains.push(optionalPath.node);
optionalPath = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(optionalPath.get("callee"));
optionalPath = skipTransparentExprWrappers(optionalPath.get("callee"));
} else {

@@ -30,3 +24,3 @@ break;

const node = chains[i];
if (_core.types.isOptionalCallExpression(node) && matchAffectedArguments(node.arguments)) {
if (t.isOptionalCallExpression(node) && matchAffectedArguments(node.arguments)) {
if (node.optional) {

@@ -36,3 +30,3 @@ return true;

const callee = chains[i + 1];
if (_core.types.isOptionalMemberExpression(callee, {
if (t.isOptionalMemberExpression(callee, {
optional: true

@@ -39,0 +33,0 @@ })) {

{
"name": "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining",
"version": "7.22.5",
"version": "8.0.0-alpha.0",
"description": "Transform optional chaining operators to workaround https://crbug.com/v8/11558",

@@ -25,19 +25,19 @@ "repository": {

"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
"@babel/plugin-transform-optional-chaining": "^7.22.5"
"@babel/helper-plugin-utils": "^8.0.0-alpha.0",
"@babel/helper-skip-transparent-expression-wrappers": "^8.0.0-alpha.0",
"@babel/plugin-transform-optional-chaining": "^8.0.0-alpha.0"
},
"peerDependencies": {
"@babel/core": "^7.13.0"
"@babel/core": "^8.0.0-alpha.0"
},
"devDependencies": {
"@babel/core": "^7.22.5",
"@babel/helper-plugin-test-runner": "^7.22.5",
"@babel/traverse": "^7.22.5"
"@babel/core": "^8.0.0-alpha.0",
"@babel/helper-plugin-test-runner": "^8.0.0-alpha.0",
"@babel/traverse": "^8.0.0-alpha.0"
},
"engines": {
"node": ">=6.9.0"
"node": "^16.20.0 || ^18.16.0 || >=20.0.0"
},
"author": "The Babel Team (https://babel.dev/team)",
"type": "commonjs"
"type": "module"
}

@@ -5,3 +5,3 @@ # @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining

See our website [@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining](https://babeljs.io/docs/en/babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining) for more information.
See our website [@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining](https://babeljs.io/docs/babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining) for more information.

@@ -8,0 +8,0 @@ ## Install

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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