Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1359)

Unified Diff: src/ast/scopes.cc

Issue 2495293002: Revert of [ast] Simplify FetchFreeVariables. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ast/scopes.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast/scopes.cc
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
index ad9330538ab9260b8e586d65d24976e88ec4e749..c3cab48d6e3ad9e6ecb4b6deb17187436aa7b6b7 100644
--- a/src/ast/scopes.cc
+++ b/src/ast/scopes.cc
@@ -1247,7 +1247,7 @@
Handle<StringSet> DeclarationScope::CollectNonLocals(
ParseInfo* info, Handle<StringSet> non_locals) {
- VariableProxy* free_variables = FetchFreeVariables(this, true);
+ VariableProxy* free_variables = FetchFreeVariables(this, true, info);
for (VariableProxy* proxy = free_variables; proxy != nullptr;
proxy = proxy->next_unresolved()) {
non_locals = StringSet::Add(non_locals, proxy->name());
@@ -1734,7 +1734,7 @@
}
VariableProxy* Scope::FetchFreeVariables(DeclarationScope* max_outer_scope,
- bool try_to_resolve,
+ bool try_to_resolve, ParseInfo* info,
VariableProxy* stack) {
for (VariableProxy *proxy = unresolved_, *next = nullptr; proxy != nullptr;
proxy = next) {
@@ -1747,6 +1747,8 @@
if (var == nullptr) {
proxy->set_next_unresolved(stack);
stack = proxy;
+ } else if (info != nullptr) {
+ ResolveTo(info, proxy, var);
} else {
var->set_is_used();
}
@@ -1756,7 +1758,8 @@
unresolved_ = nullptr;
for (Scope* scope = inner_scope_; scope != nullptr; scope = scope->sibling_) {
- stack = scope->FetchFreeVariables(max_outer_scope, try_to_resolve, stack);
+ stack =
+ scope->FetchFreeVariables(max_outer_scope, try_to_resolve, info, stack);
}
return stack;
« no previous file with comments | « src/ast/scopes.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698