From aa773172311dcada759dfbaac485f4bc6e00bc21 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sat, 14 Oct 2023 15:31:11 +0800 Subject: added babel --- .../lib/index.js | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js (limited to 'node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js') diff --git a/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js b/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js new file mode 100644 index 00000000..071d9edf --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js @@ -0,0 +1,66 @@ +'use strict'; + +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)); + return spreadIndex >= 0 && spreadIndex !== argumentNodes.length - 1; +} +function shouldTransform(path) { + let optionalPath = path; + const chains = []; + for (;;) { + if (optionalPath.isOptionalMemberExpression()) { + chains.push(optionalPath.node); + optionalPath = helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers(optionalPath.get("object")); + } else if (optionalPath.isOptionalCallExpression()) { + chains.push(optionalPath.node); + optionalPath = helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers(optionalPath.get("callee")); + } else { + break; + } + } + for (let i = 0; i < chains.length; i++) { + const node = chains[i]; + if (core.types.isOptionalCallExpression(node) && matchAffectedArguments(node.arguments)) { + if (node.optional) { + return true; + } + const callee = chains[i + 1]; + if (core.types.isOptionalMemberExpression(callee, { + optional: true + })) { + return true; + } + } + } + return false; +} + +var index = helperPluginUtils.declare(api => { + var _api$assumption, _api$assumption2; + 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; + return { + name: "bugfix-v8-spread-parameters-in-optional-chaining", + visitor: { + "OptionalCallExpression|OptionalMemberExpression"(path) { + if (shouldTransform(path)) { + pluginTransformOptionalChaining.transform(path, { + noDocumentAll, + pureGetters + }); + } + } + } + }; +}); + +exports.default = index; +//# sourceMappingURL=index.js.map -- cgit v1.2.3