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

Unified Diff: src/ast/scopes.cc

Issue 2388183003: PreParsing inner functions: Fix declaration-only variables. (Closed)
Patch Set: flag off Created 4 years, 2 months 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') | src/parsing/preparser.h » ('j') | 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 fbcdf903602b63249232124f285c705aec42a553..36fe4e5a97e8787dde1cbe858061b817f29f4e22 100644
--- a/src/ast/scopes.cc
+++ b/src/ast/scopes.cc
@@ -997,6 +997,25 @@ bool Scope::RemoveUnresolved(VariableProxy* var) {
return false;
}
+bool Scope::RemoveUnresolved(const AstRawString* name) {
+ if (unresolved_->raw_name() == name) {
+ VariableProxy* removed = unresolved_;
+ unresolved_ = unresolved_->next_unresolved();
+ removed->set_next_unresolved(nullptr);
+ return true;
+ }
+ VariableProxy* current = unresolved_;
+ while (current != nullptr) {
+ VariableProxy* next = current->next_unresolved();
+ if (next->raw_name() == name) {
+ current->set_next_unresolved(next->next_unresolved());
+ next->set_next_unresolved(nullptr);
+ return true;
+ }
+ current = next;
+ }
+ return false;
+}
Variable* Scope::NewTemporary(const AstRawString* name) {
DeclarationScope* scope = GetClosureScope();
« no previous file with comments | « src/ast/scopes.h ('k') | src/parsing/preparser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698