From b8d53c1811ef600a7b49939573ea7fbde4f4ce1b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 27 Aug 2015 11:10:22 -0700 Subject: [PATCH] fix predence of destructuring parameters - fixes #2269 --- .../src/transformation/transformers/es6/destructuring.js | 2 +- .../es6.destructuring/default-precedence/exec.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js diff --git a/packages/babel-core/src/transformation/transformers/es6/destructuring.js b/packages/babel-core/src/transformation/transformers/es6/destructuring.js index ad7f3b4bf8..b64d89cfe3 100644 --- a/packages/babel-core/src/transformation/transformers/es6/destructuring.js +++ b/packages/babel-core/src/transformation/transformers/es6/destructuring.js @@ -95,7 +95,7 @@ export var visitor = { t.inherits(ref, pattern); var destructuring = new DestructuringTransformer({ - blockHoist: node.params.length - i, + blockHoist: node.params.length - i + 1, nodes: nodes, scope: scope, file: file, diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js new file mode 100644 index 0000000000..4cc3d913f3 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js @@ -0,0 +1,8 @@ +const f0 = (a, b = a, c = b) => [a, b, c]; +assert.deepEqual(f0(1), [1, 1, 1]); + +const f1 = ({a}, b = a, c = b) => [a, b, c]; +assert.deepEqual(f1({a: 1}), [1, 1, 1]); + +const f2 = ({a}, b = a, c = a) => [a, b, c]; +assert.deepEqual(f2({a: 1}), [1, 1, 1]);