diff options
Diffstat (limited to 'deps/v8/src/compiler/pipeline.cc')
-rw-r--r-- | deps/v8/src/compiler/pipeline.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/deps/v8/src/compiler/pipeline.cc b/deps/v8/src/compiler/pipeline.cc index 4d6aacd78a..2204424706 100644 --- a/deps/v8/src/compiler/pipeline.cc +++ b/deps/v8/src/compiler/pipeline.cc @@ -677,6 +677,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()); @@ -1204,6 +1211,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())); } |