Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index 100a2d44fac07075fccb776cac2e511c5e1b4a12..20703673202d4b5cfbe17f5fc15cf47b287b796b 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -658,16 +658,16 @@ LInstruction* LChunkBuilder::AssignEnvironment(LInstruction* instr) { |
LInstruction* LChunkBuilder::SetInstructionPendingDeoptimizationEnvironment( |
LInstruction* instr, int ast_id) { |
- ASSERT(instructions_pending_deoptimization_environment_ == NULL); |
+ ASSERT(instruction_pending_deoptimization_environment_ == NULL); |
ASSERT(pending_deoptimization_ast_id_ == AstNode::kNoNumber); |
- instructions_pending_deoptimization_environment_ = instr; |
+ instruction_pending_deoptimization_environment_ = instr; |
pending_deoptimization_ast_id_ = ast_id; |
return instr; |
} |
void LChunkBuilder::ClearInstructionPendingDeoptimizationEnvironment() { |
- instructions_pending_deoptimization_environment_ = NULL; |
+ instruction_pending_deoptimization_environment_ = NULL; |
pending_deoptimization_ast_id_ = AstNode::kNoNumber; |
} |
@@ -1507,6 +1507,13 @@ LInstruction* LChunkBuilder::DoBoundsCheck(HBoundsCheck* instr) { |
} |
+LInstruction* LChunkBuilder::DoAbnormalExit(HAbnormalExit* instr) { |
+ // The control instruction marking the end of a block that completed |
+ // abruptly (e.g., threw an exception). There is nothing specific to do. |
+ return NULL; |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoThrow(HThrow* instr) { |
LOperand* value = UseFixed(instr->value(), eax); |
return MarkAsCall(new LThrow(value), instr); |
@@ -1875,10 +1882,11 @@ LInstruction* LChunkBuilder::DoSimulate(HSimulate* instr) { |
// If there is an instruction pending deoptimization environment create a |
// lazy bailout instruction to capture the environment. |
- if (pending_deoptimization_ast_id_ == instr->ast_id()) { |
+ if (pending_deoptimization_ast_id_ != AstNode::kNoNumber) { |
+ ASSERT(pending_deoptimization_ast_id_ == instr->ast_id()); |
LLazyBailout* lazy_bailout = new LLazyBailout; |
LInstruction* result = AssignEnvironment(lazy_bailout); |
- instructions_pending_deoptimization_environment_-> |
+ instruction_pending_deoptimization_environment_-> |
set_deoptimization_environment(result->environment()); |
ClearInstructionPendingDeoptimizationEnvironment(); |
return result; |