diff --git a/packages/babel/src/transformation/transformers/es6/block-scoping.js b/packages/babel/src/transformation/transformers/es6/block-scoping.js index a0d61a37e8..fb0b903dfa 100644 --- a/packages/babel/src/transformation/transformers/es6/block-scoping.js +++ b/packages/babel/src/transformation/transformers/es6/block-scoping.js @@ -233,8 +233,8 @@ var hoistVarDeclarationsVisitor = { } } else if (this.isFor()) { if (isVar(node.left, node)) { - node.left = node.left.declarations[0].id; self.pushDeclar(node.left); + node.left = node.left.declarations[0].id; } } else if (isVar(node, parent)) { return self.pushDeclar(node).map(t.expressionStatement); diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js b/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js new file mode 100644 index 0000000000..fb9c181715 --- /dev/null +++ b/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js @@ -0,0 +1,7 @@ +if (true) { + function foo() {} + function bar() { + return foo; + } + for (var x in {}) {} +} diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js b/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js new file mode 100644 index 0000000000..7bde20839d --- /dev/null +++ b/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js @@ -0,0 +1,15 @@ +"use strict"; + +if (true) { + var x; + + (function () { + var foo = function foo() {}; + + var bar = function bar() { + return foo; + }; + + for (x in {}) {} + })(); +}