From 5326e0543d073cf7d59d2c5ba6dd4fa71bed2d65 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 11 Apr 2015 16:39:18 -0700 Subject: [PATCH] fix scope tracking for constants in loop heads - fixes #1229 --- src/babel/traversal/scope.js | 2 +- test/core/fixtures/transformation/es6.constants/loop/actual.js | 3 +++ .../fixtures/transformation/es6.constants/loop/options.json | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 test/core/fixtures/transformation/es6.constants/loop/actual.js create mode 100644 test/core/fixtures/transformation/es6.constants/loop/options.json diff --git a/src/babel/traversal/scope.js b/src/babel/traversal/scope.js index 01358c709d..87addd8627 100644 --- a/src/babel/traversal/scope.js +++ b/src/babel/traversal/scope.js @@ -449,7 +449,7 @@ export default class Scope { if (path.isLoop()) { for (let i = 0; i < t.FOR_INIT_KEYS.length; i++) { var node = path.get(t.FOR_INIT_KEYS[i]); - if (node.isBlockScoped()) this.registerBinding("let", node); + if (node.isBlockScoped()) this.registerBinding(node.node.kind, node); } } diff --git a/test/core/fixtures/transformation/es6.constants/loop/actual.js b/test/core/fixtures/transformation/es6.constants/loop/actual.js new file mode 100644 index 0000000000..2bef733ec1 --- /dev/null +++ b/test/core/fixtures/transformation/es6.constants/loop/actual.js @@ -0,0 +1,3 @@ +for (const i = 0; i < 3; i = i + 1) { + console.log(i); +} diff --git a/test/core/fixtures/transformation/es6.constants/loop/options.json b/test/core/fixtures/transformation/es6.constants/loop/options.json new file mode 100644 index 0000000000..81e76d393f --- /dev/null +++ b/test/core/fixtures/transformation/es6.constants/loop/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Duplicate declaration \"i\"" +}