@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining
Advanced tools
Comparing version 7.22.5 to 8.0.0-alpha.0
@@ -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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Yes
15033
95
1
+ Added@babel/code-frame@8.0.0-alpha.13(transitive)
+ Added@babel/compat-data@8.0.0-alpha.13(transitive)
+ Added@babel/core@8.0.0-alpha.13(transitive)
+ Added@babel/generator@8.0.0-alpha.13(transitive)
+ Added@babel/helper-compilation-targets@8.0.0-alpha.13(transitive)
+ Added@babel/helper-plugin-utils@8.0.0-alpha.13(transitive)
+ Added@babel/helper-skip-transparent-expression-wrappers@8.0.0-alpha.13(transitive)
+ Added@babel/helper-string-parser@8.0.0-alpha.13(transitive)
+ Added@babel/helper-validator-identifier@8.0.0-alpha.13(transitive)
+ Added@babel/helper-validator-option@8.0.0-alpha.13(transitive)
+ Added@babel/helpers@8.0.0-alpha.13(transitive)
+ Added@babel/parser@8.0.0-alpha.13(transitive)
+ Added@babel/plugin-transform-optional-chaining@8.0.0-alpha.13(transitive)
+ Added@babel/template@8.0.0-alpha.13(transitive)
+ Added@babel/traverse@8.0.0-alpha.13(transitive)
+ Added@babel/types@8.0.0-alpha.13(transitive)
+ Addedglobals@15.12.0(transitive)
+ Addedjs-tokens@8.0.3(transitive)
+ Addedlru-cache@7.18.3(transitive)
+ Addedsemver@7.6.3(transitive)
- Removed@babel/code-frame@7.26.2(transitive)
- Removed@babel/compat-data@7.26.2(transitive)
- Removed@babel/core@7.26.0(transitive)
- Removed@babel/generator@7.26.2(transitive)
- Removed@babel/helper-compilation-targets@7.25.9(transitive)
- Removed@babel/helper-module-imports@7.25.9(transitive)
- Removed@babel/helper-module-transforms@7.26.0(transitive)
- Removed@babel/helper-plugin-utils@7.25.9(transitive)
- Removed@babel/helper-skip-transparent-expression-wrappers@7.25.9(transitive)
- Removed@babel/helper-string-parser@7.25.9(transitive)
- Removed@babel/helper-validator-identifier@7.25.9(transitive)
- Removed@babel/helper-validator-option@7.25.9(transitive)
- Removed@babel/helpers@7.26.0(transitive)
- Removed@babel/parser@7.26.2(transitive)
- Removed@babel/plugin-transform-optional-chaining@7.25.9(transitive)
- Removed@babel/template@7.25.9(transitive)
- Removed@babel/traverse@7.25.9(transitive)
- Removed@babel/types@7.26.0(transitive)
- Removedglobals@11.12.0(transitive)
- Removedjs-tokens@4.0.0(transitive)
- Removedlru-cache@5.1.1(transitive)
- Removedsemver@6.3.1(transitive)
- Removedyallist@3.1.1(transitive)
Updated@babel/helper-skip-transparent-expression-wrappers@^8.0.0-alpha.0
Updated@babel/plugin-transform-optional-chaining@^8.0.0-alpha.0