Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 934f4be17df9ba94d75435a79e9d8e23e8d557cd..9d3c5dd0f7047bca3b816cc2b0b5ac06faf90f46 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -936,6 +936,10 @@ struct EscapeAnalysisPhase { |
&escape_analysis, temp_zone); |
AddReducer(data, &graph_reducer, &escape_reducer); |
graph_reducer.ReduceGraph(); |
+ if (escape_reducer.compilation_failed()) { |
+ data->set_compilation_failed(); |
+ return; |
+ } |
escape_reducer.VerifyReplacement(); |
} |
}; |
@@ -1550,6 +1554,11 @@ bool PipelineImpl::CreateGraph() { |
if (FLAG_turbo_escape) { |
Run<EscapeAnalysisPhase>(); |
+ if (data->compilation_failed()) { |
+ info()->AbortOptimization(kCyclicObjectStateDetectedInEscapeAnalysis); |
+ data->EndPhaseKind(); |
+ return false; |
+ } |
RunPrintAndVerify("Escape Analysed"); |
} |
} |