Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index c0bdf7670dbf326a315a70146ff7199839c78902..bb185c3fd5972fd25170d935ca97e64f1e51614b 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -697,6 +697,13 @@ struct SimplifiedLoweringPhase { |
SimplifiedLowering lowering(data->jsgraph(), temp_zone, |
data->source_positions()); |
lowering.LowerAllNodes(); |
+ |
+ // TODO(bmeurer): See comment on SimplifiedLowering::abort_compilation_. |
+ if (lowering.abort_compilation_) { |
+ data->set_compilation_failed(); |
+ return; |
+ } |
+ |
JSGraphReducer graph_reducer(data->jsgraph(), temp_zone); |
DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(), |
data->common()); |
@@ -1217,6 +1224,9 @@ Handle<Code> Pipeline::GenerateCode() { |
// Kill the Typer and thereby uninstall the decorator (if any). |
typer.Reset(nullptr); |
+ // TODO(bmeurer): See comment on SimplifiedLowering::abort_compilation_. |
+ if (data.compilation_failed()) return Handle<Code>::null(); |
+ |
return ScheduleAndGenerateCode( |
Linkage::ComputeIncoming(data.instruction_zone(), info())); |
} |