move FunctionDeclarations into a hoisted kind

This commit is contained in:
Sebastian McKenzie
2015-02-09 19:53:46 +11:00
parent 5e81653680
commit c6f13844ed

View File

@@ -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(),