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

Unified Diff: src/ast/ast-numbering.cc

Issue 2648503002: [Compiler] Have renumber recurse into eagerly compiled function literals. (Closed)
Patch Set: Add comment Created 3 years, 11 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 | « no previous file | src/compiler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast/ast-numbering.cc
diff --git a/src/ast/ast-numbering.cc b/src/ast/ast-numbering.cc
index 374970775b53a25d6ded57af7ba058d59b6f59e8..0e1a12e403edfddb57091a2d92292d16f02a8d53 100644
--- a/src/ast/ast-numbering.cc
+++ b/src/ast/ast-numbering.cc
@@ -598,12 +598,18 @@ void AstNumberingVisitor::VisitArguments(ZoneList<Expression*>* arguments) {
void AstNumberingVisitor::VisitFunctionLiteral(FunctionLiteral* node) {
IncrementNodeCount();
node->set_base_id(ReserveIdRange(FunctionLiteral::num_ids()));
- if (eager_literals_ && node->ShouldEagerCompile()) {
- eager_literals_->Add(new (zone())
- ThreadedListZoneEntry<FunctionLiteral*>(node));
+ if (node->ShouldEagerCompile()) {
+ // If the function literal is being eagerly compiled, recurse into the
+ // declarations and body of the function literal.
+ if (!AstNumbering::Renumber(stack_limit_, zone_, node, eager_literals_)) {
+ SetStackOverflow();
+ return;
+ }
+ if (eager_literals_) {
+ eager_literals_->Add(new (zone())
+ ThreadedListZoneEntry<FunctionLiteral*>(node));
+ }
}
- // We don't recurse into the declarations or body of the function literal:
- // you have to separately Renumber() each FunctionLiteral that you compile.
ReserveFeedbackSlots(node);
}
« no previous file with comments | « no previous file | src/compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698