diff --git a/src/babel/transformation/transformers/es6/spread.js b/src/babel/transformation/transformers/es6/spread.js index d56f9c9c66..5d8abc2f74 100644 --- a/src/babel/transformation/transformers/es6/spread.js +++ b/src/babel/transformation/transformers/es6/spread.js @@ -107,13 +107,9 @@ export function NewExpression(node, parent, scope, file) { var nodes = build(args, scope); - var first = nodes.shift(); + var context = t.arrayExpression([t.literal(null)]); - if (nodes.length) { - args = t.callExpression(t.memberExpression(first, t.identifier("concat")), nodes); - } else { - args = first; - } + args = t.callExpression(t.memberExpression(context, t.identifier("concat")), nodes); return t.newExpression( t.callExpression( diff --git a/test/core/fixtures/transformation/es6-destructuring/spread/expected.js b/test/core/fixtures/transformation/es6-destructuring/spread/expected.js index 75f6fa8ced..2e86d3b1b2 100644 --- a/test/core/fixtures/transformation/es6-destructuring/spread/expected.js +++ b/test/core/fixtures/transformation/es6-destructuring/spread/expected.js @@ -5,6 +5,7 @@ function isSorted(_ref) { var x = _ref2[0]; var y = _ref2[1]; + var wow = _ref2.slice(2); if (!zs.length) return true; diff --git a/test/core/fixtures/transformation/es6-spread/new-expression/expected.js b/test/core/fixtures/transformation/es6-spread/new-expression/expected.js index dce34bd1a3..2b726aaab6 100644 --- a/test/core/fixtures/transformation/es6-spread/new-expression/expected.js +++ b/test/core/fixtures/transformation/es6-spread/new-expression/expected.js @@ -1,4 +1,4 @@ "use strict"; -new (babelHelpers.bind.apply(Numbers, babelHelpers.toConsumableArray(nums)))(); -new (babelHelpers.bind.apply(Numbers, [1].concat(babelHelpers.toConsumableArray(nums))))(); +new (babelHelpers.bind.apply(Numbers, [null].concat(babelHelpers.toConsumableArray(nums))))(); +new (babelHelpers.bind.apply(Numbers, [null].concat([1], babelHelpers.toConsumableArray(nums))))();