Index: src/mips/full-codegen-mips.cc |
diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc |
index 48c176acdba7961a4648bf19c3c64fc9acd0041c..ec2a248060b143e04ad3b882abe0de5e025c4bce 100644 |
--- a/src/mips/full-codegen-mips.cc |
+++ b/src/mips/full-codegen-mips.cc |
@@ -691,10 +691,11 @@ void FullCodeGenerator::Move(Slot* dst, |
} |
-void FullCodeGenerator::EmitDeclaration(Variable* variable, |
+void FullCodeGenerator::EmitDeclaration(VariableProxy* proxy, |
Variable::Mode mode, |
FunctionLiteral* function) { |
Comment cmnt(masm_, "[ Declaration"); |
+ Variable* variable = proxy->var(); |
ASSERT(variable != NULL); // Must have been resolved. |
Slot* slot = variable->AsSlot(); |
ASSERT(slot != NULL); |
@@ -734,10 +735,12 @@ void FullCodeGenerator::EmitDeclaration(Variable* variable, |
// We know that we have written a function, which is not a smi. |
__ mov(a1, cp); |
__ RecordWrite(a1, Operand(offset), a2, result_register()); |
+ PrepareForBailoutForId(proxy->id(), NO_REGISTERS); |
} else if (mode == Variable::CONST || mode == Variable::LET) { |
__ LoadRoot(at, Heap::kTheHoleValueRootIndex); |
__ sw(at, ContextOperand(cp, slot->index())); |
// No write barrier since the_hole_value is in old space. |
+ PrepareForBailoutForId(proxy->id(), NO_REGISTERS); |
} |
break; |
@@ -774,7 +777,7 @@ void FullCodeGenerator::EmitDeclaration(Variable* variable, |
void FullCodeGenerator::VisitDeclaration(Declaration* decl) { |
- EmitDeclaration(decl->proxy()->var(), decl->mode(), decl->fun()); |
+ EmitDeclaration(decl->proxy(), decl->mode(), decl->fun()); |
} |