From 4d927de528a9caf2e79f4505d0dcb1351fe6550b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Wed, 9 Jun 2021 16:53:46 +0200 Subject: [PATCH] Use `arrayWithoutHoles` helper --- packages/babel-plugin-transform-spread/src/index.js | 12 ++++-------- .../fixtures/spread/nested-array-with-hole/output.js | 4 ++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/babel-plugin-transform-spread/src/index.js b/packages/babel-plugin-transform-spread/src/index.js index 23c870f7198e..dd55f31ff28a 100644 --- a/packages/babel-plugin-transform-spread/src/index.js +++ b/packages/babel-plugin-transform-spread/src/index.js @@ -21,13 +21,7 @@ export default declare((api, options) => { } function hasHole(spread) { - const elements = spread.elements; - for (let i = 0; i < elements.length; i++) { - if (elements[i] === null) { - return true; - } - } - return false; + return spread.elements.some(el => el === null); } function hasSpread(nodes) { @@ -53,12 +47,14 @@ export default declare((api, options) => { if (t.isSpreadElement(prop)) { _props = push(_props, nodes); let spreadLiteral = getSpreadLiteral(prop, scope); + if (t.isArrayExpression(spreadLiteral) && hasHole(spreadLiteral)) { spreadLiteral = t.callExpression( - file.addHelper("toConsumableArray"), + file.addHelper("arrayWithoutHoles"), [spreadLiteral], ); } + nodes.push(spreadLiteral); } else { _props.push(prop); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/spread/nested-array-with-hole/output.js b/packages/babel-plugin-transform-spread/test/fixtures/spread/nested-array-with-hole/output.js index 551e14822f17..bc2f49f74d1f 100644 --- a/packages/babel-plugin-transform-spread/test/fixtures/spread/nested-array-with-hole/output.js +++ b/packages/babel-plugin-transform-spread/test/fixtures/spread/nested-array-with-hole/output.js @@ -1,2 +1,2 @@ -var a = babelHelpers.toConsumableArray(['a',, 'b']); -var b = ['a'].concat(babelHelpers.toConsumableArray(['b',, 'c'])); +var a = babelHelpers.arrayWithoutHoles(['a',, 'b']); +var b = ['a'].concat(babelHelpers.arrayWithoutHoles(['b',, 'c']));