From c6f13844ed8b43756dfa5c42a09944a22287375f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 9 Feb 2015 19:53:46 +1100 Subject: [PATCH] move FunctionDeclarations into a hoisted kind --- lib/6to5/traversal/scope.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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(),