From 07646475d9c12cde672d3f4e98b2ddf386e14531 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 28 Mar 2015 05:37:38 +1100 Subject: [PATCH] fix spread binding with the wrong context --- src/babel/transformation/transformers/es6/spread.js | 8 ++------ .../transformation/es6-destructuring/spread/expected.js | 1 + .../transformation/es6-spread/new-expression/expected.js | 4 ++-- 3 files changed, 5 insertions(+), 8 deletions(-) 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))))();