diff --git a/lib/6to5/traversal/scope.js b/lib/6to5/traversal/scope.js index e02a4165c0..73df51e376 100644 --- a/lib/6to5/traversal/scope.js +++ b/lib/6to5/traversal/scope.js @@ -249,8 +249,10 @@ var programReferenceVisitor = { var blockVariableVisitor = { enter: function (node, parent, scope, state) { - if (t.isBlockScoped(node)) { - state.register(node, null, "let"); + if (t.isFunctionDeclaration(node)) { + state.register(node, false, "hoisted"); + } else if (t.isBlockScoped(node)) { + state.register(node, false, "let"); } else if (t.isScope(node)) { this.skip(); } @@ -272,9 +274,10 @@ Scope.prototype.crawl = function () { info = block._scopeInfo = { bindingKinds: { - "const": object(), - "var": object(), - "let": object() + "hoisted": object(), + "const": object(), + "var": object(), + "let": object() }, references: object(),