| Index: src/ast/ast-numbering.cc
|
| diff --git a/src/ast/ast-numbering.cc b/src/ast/ast-numbering.cc
|
| index 2e0d020113c7a56c7bba19455464a682c421bfcd..a8e63c0018741bb07b44bc505c4920562e200514 100644
|
| --- a/src/ast/ast-numbering.cc
|
| +++ b/src/ast/ast-numbering.cc
|
| @@ -19,6 +19,7 @@ class AstNumberingVisitor final : public AstVisitor<AstNumberingVisitor> {
|
| yield_count_(0),
|
| properties_(zone),
|
| slot_cache_(zone),
|
| + disable_crankshaft_reason_(kNoReason),
|
| dont_optimize_reason_(kNoReason),
|
| catch_prediction_(HandlerTable::UNCAUGHT) {
|
| InitializeAstVisitor(isolate);
|
| @@ -56,6 +57,7 @@ class AstNumberingVisitor final : public AstVisitor<AstNumberingVisitor> {
|
| DisableSelfOptimization();
|
| }
|
| void DisableFullCodegenAndCrankshaft(BailoutReason reason) {
|
| + disable_crankshaft_reason_ = reason;
|
| properties_.flags() |= AstProperties::kMustUseIgnitionTurbo;
|
| }
|
|
|
| @@ -74,6 +76,7 @@ class AstNumberingVisitor final : public AstVisitor<AstNumberingVisitor> {
|
| AstProperties properties_;
|
| // The slot cache allows us to reuse certain feedback vector slots.
|
| FeedbackVectorSlotCache slot_cache_;
|
| + BailoutReason disable_crankshaft_reason_;
|
| BailoutReason dont_optimize_reason_;
|
| HandlerTable::CatchPrediction catch_prediction_;
|
|
|
| @@ -623,6 +626,15 @@ bool AstNumberingVisitor::Renumber(FunctionLiteral* node) {
|
| node->set_ast_properties(&properties_);
|
| node->set_dont_optimize_reason(dont_optimize_reason());
|
| node->set_yield_count(yield_count_);
|
| +
|
| + if (FLAG_trace_opt) {
|
| + if (disable_crankshaft_reason_ != kNoReason) {
|
| + PrintF("[enforcing Ignition and TurboFan for %s because: %s\n",
|
| + node->debug_name()->ToCString().get(),
|
| + GetBailoutReason(disable_crankshaft_reason_));
|
| + }
|
| + }
|
| +
|
| return !HasStackOverflow();
|
| }
|
|
|
|
|