Merge V8 5.3.332.45. DO NOT MERGE
Test: Manual
FPIIM-449
Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/src/ast/ast-numbering.cc b/src/ast/ast-numbering.cc
index bd96026..dd6ce4a 100644
--- a/src/ast/ast-numbering.cc
+++ b/src/ast/ast-numbering.cc
@@ -220,7 +220,6 @@
node->set_yield_id(yield_count_);
yield_count_++;
IncrementNodeCount();
- DisableOptimization(kYield);
ReserveFeedbackSlots(node);
node->set_base_id(ReserveIdRange(Yield::num_ids()));
Visit(node->generator_object());
@@ -306,7 +305,7 @@
void AstNumberingVisitor::VisitTryCatchStatement(TryCatchStatement* node) {
IncrementNodeCount();
- DisableOptimization(kTryCatchStatement);
+ DisableCrankshaft(kTryCatchStatement);
Visit(node->try_block());
Visit(node->catch_block());
}
@@ -314,7 +313,7 @@
void AstNumberingVisitor::VisitTryFinallyStatement(TryFinallyStatement* node) {
IncrementNodeCount();
- DisableOptimization(kTryFinallyStatement);
+ DisableCrankshaft(kTryFinallyStatement);
Visit(node->try_block());
Visit(node->finally_block());
}
@@ -579,6 +578,13 @@
DisableCrankshaft(kRestParameter);
}
+ if (IsGeneratorFunction(node->kind()) || IsAsyncFunction(node->kind())) {
+ // TODO(neis): We may want to allow Turbofan optimization here if
+ // --turbo-from-bytecode is set and we know that Ignition is used.
+ // Unfortunately we can't express that here.
+ DisableOptimization(kGenerator);
+ }
+
VisitDeclarations(scope->declarations());
VisitStatements(node->body());