From 3afc67c35a680d9cadae952dd927f06fc5b44bda Mon Sep 17 00:00:00 2001 From: Bogdan Savluk Date: Mon, 14 Jun 2021 12:24:45 +0200 Subject: [PATCH 1/2] babel-plugin-transform-spread add missing argument in build calls --- packages/babel-plugin-transform-spread/src/index.js | 4 ++-- .../test/fixtures/spread/method-call-array-literal/input.js | 1 + .../test/fixtures/spread/method-call-array-literal/output.js | 1 + .../test/fixtures/spread/new-expression/input.js | 1 + .../test/fixtures/spread/new-expression/output.js | 1 + 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/babel-plugin-transform-spread/src/index.js b/packages/babel-plugin-transform-spread/src/index.js index 78e741eddf34..ebee361ec52a 100644 --- a/packages/babel-plugin-transform-spread/src/index.js +++ b/packages/babel-plugin-transform-spread/src/index.js @@ -135,7 +135,7 @@ export default declare((api, options) => { if (args.length === 1 && args[0].argument.name === "arguments") { nodes = [args[0].argument]; } else { - nodes = build(args, scope); + nodes = build(args, scope, this); } const first = nodes.shift(); @@ -177,7 +177,7 @@ export default declare((api, options) => { let args = node.arguments; if (!hasSpread(args)) return; - const nodes = build(args, scope); + const nodes = build(args, scope, this); const first = nodes.shift(); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/input.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/input.js index 2d1a0bb71622..a4fb399c5d54 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/input.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/input.js @@ -1 +1,2 @@ f(...[1, 2, 3]); +f(...[1, , 3]); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js index c4f511641c9a..8a4d8083fea9 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js @@ -1 +1,2 @@ f.apply(void 0, [1, 2, 3]); +f.apply(void 0, babelHelpers.arrayWithoutHoles([1,, 3])); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/input.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/input.js index 72800dd42be2..59ffe4e9ee8d 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/input.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/input.js @@ -1,2 +1,3 @@ new Numbers(...nums); new Numbers(1, ...nums); +new Numbers(...[1, , 3]); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js index 34d55c27f0f1..fa942d3ef219 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js @@ -1,2 +1,3 @@ babelHelpers.construct(Numbers, babelHelpers.toConsumableArray(nums)); babelHelpers.construct(Numbers, [1].concat(babelHelpers.toConsumableArray(nums))); +babelHelpers.construct(Numbers, babelHelpers.arrayWithoutHoles([1,, 3])); From a012c5540892a2b76c88726d1dc7dfc7f9893b1b Mon Sep 17 00:00:00 2001 From: Bogdan Savluk Date: Mon, 14 Jun 2021 12:46:47 +0200 Subject: [PATCH 2/2] update tests for babel 8 test --- .../fixtures/spread/method-call-array-literal-babel-7/input.js | 2 ++ .../spread/method-call-array-literal-babel-7/options.json | 3 +++ .../spread/method-call-array-literal-babel-7/output.js | 2 ++ .../fixtures/spread/method-call-array-literal/options.json | 3 +++ .../test/fixtures/spread/method-call-array-literal/output.js | 2 +- .../test/fixtures/spread/new-expression-babel-7/input.js | 3 +++ .../test/fixtures/spread/new-expression-babel-7/options.json | 3 +++ .../test/fixtures/spread/new-expression-babel-7/output.js | 3 +++ .../test/fixtures/spread/new-expression/options.json | 3 +++ .../test/fixtures/spread/new-expression/output.js | 2 +- 10 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/input.js create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/options.json create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/output.js create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/options.json create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/input.js create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/options.json create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/output.js create mode 100644 packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/options.json diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/input.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/input.js new file mode 100644 index 000000000000..a4fb399c5d54 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/input.js @@ -0,0 +1,2 @@ +f(...[1, 2, 3]); +f(...[1, , 3]); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/options.json b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/options.json new file mode 100644 index 000000000000..29a3f0e84167 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/options.json @@ -0,0 +1,3 @@ +{ + "BABEL_8_BREAKING": false +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/output.js new file mode 100644 index 000000000000..8a4d8083fea9 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal-babel-7/output.js @@ -0,0 +1,2 @@ +f.apply(void 0, [1, 2, 3]); +f.apply(void 0, babelHelpers.arrayWithoutHoles([1,, 3])); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/options.json b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/options.json new file mode 100644 index 000000000000..cbf6d1595427 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/options.json @@ -0,0 +1,3 @@ +{ + "BABEL_8_BREAKING": true +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js index 8a4d8083fea9..f389234a3653 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/method-call-array-literal/output.js @@ -1,2 +1,2 @@ f.apply(void 0, [1, 2, 3]); -f.apply(void 0, babelHelpers.arrayWithoutHoles([1,, 3])); +f.apply(void 0, babelHelpers.arrayLikeToArray([1,, 3])); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/input.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/input.js new file mode 100644 index 000000000000..59ffe4e9ee8d --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/input.js @@ -0,0 +1,3 @@ +new Numbers(...nums); +new Numbers(1, ...nums); +new Numbers(...[1, , 3]); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/options.json b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/options.json new file mode 100644 index 000000000000..29a3f0e84167 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/options.json @@ -0,0 +1,3 @@ +{ + "BABEL_8_BREAKING": false +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/output.js new file mode 100644 index 000000000000..fa942d3ef219 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression-babel-7/output.js @@ -0,0 +1,3 @@ +babelHelpers.construct(Numbers, babelHelpers.toConsumableArray(nums)); +babelHelpers.construct(Numbers, [1].concat(babelHelpers.toConsumableArray(nums))); +babelHelpers.construct(Numbers, babelHelpers.arrayWithoutHoles([1,, 3])); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/options.json b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/options.json new file mode 100644 index 000000000000..cbf6d1595427 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/options.json @@ -0,0 +1,3 @@ +{ + "BABEL_8_BREAKING": true +} diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js index fa942d3ef219..1ad3c88c8155 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/new-expression/output.js @@ -1,3 +1,3 @@ babelHelpers.construct(Numbers, babelHelpers.toConsumableArray(nums)); babelHelpers.construct(Numbers, [1].concat(babelHelpers.toConsumableArray(nums))); -babelHelpers.construct(Numbers, babelHelpers.arrayWithoutHoles([1,, 3])); +babelHelpers.construct(Numbers, babelHelpers.arrayLikeToArray([1,, 3]));