Commit 2dac4588 authored by marja's avatar marja Committed by Commit bot

[parser] Skipping inner funcs: make basic variable declarations work.

BUG=v8:5516

Review-Url: https://codereview.chromium.org/2659053002
Cr-Commit-Position: refs/heads/master@{#42739}
parent 9ea3fe0b
......@@ -1903,6 +1903,9 @@ VariableProxy* Scope::FetchFreeVariables(DeclarationScope* max_outer_scope,
if (!var->is_dynamic() && lookup != this) var->ForceContextAllocation();
} else {
var->set_is_used();
if (proxy->is_assigned()) {
var->set_maybe_assigned();
}
}
}
}
......
......@@ -9042,9 +9042,30 @@ TEST(PreParserScopeAnalysis) {
const char* params;
const char* source;
} inners[] = {
{"", "var1"},
{"", "var1;"},
{"", "var1 = 5;"},
{"", "if (true) {}"},
{"", "function f1() {}"},
{"", "var var1;"},
{"", "var var1; var1 = 5;"},
{"", "if (true) { var var1; }"},
{"", "if (true) { var var1; var1 = 5; }"},
{"", "var var1; function f() { var1; }"},
{"", "var var1; var1 = 5; function f() { var1; }"},
{"", "var var1; function f() { var1 = 5; }"},
{"", "let var1;"},
{"", "let var1; var1 = 5;"},
{"", "if (true) { let var1; }"},
{"", "if (true) { let var1; var1 = 5; }"},
{"", "let var1; function f() { var1; }"},
{"", "let var1; var1 = 5; function f() { var1; }"},
{"", "let var1; function f() { var1 = 5; }"},
{"", "const var1 = 5;"},
{"", "if (true) { const var1 = 5; }"},
{"", "const var1 = 5; function f() { var1; }"},
};
for (unsigned i = 0; i < arraysize(inners); ++i) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment