Index: src/ia32/full-codegen-ia32.cc |
=================================================================== |
--- src/ia32/full-codegen-ia32.cc (revision 9109) |
+++ src/ia32/full-codegen-ia32.cc (working copy) |
@@ -684,10 +684,11 @@ |
} |
-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); |
@@ -724,10 +725,12 @@ |
int offset = Context::SlotOffset(slot->index()); |
__ mov(ebx, esi); |
__ RecordWrite(ebx, offset, result_register(), ecx); |
+ PrepareForBailoutForId(proxy->id(), NO_REGISTERS); |
} else if (mode == Variable::CONST || mode == Variable::LET) { |
__ mov(ContextOperand(esi, slot->index()), |
Immediate(isolate()->factory()->the_hole_value())); |
// No write barrier since the hole value is in old space. |
+ PrepareForBailoutForId(proxy->id(), NO_REGISTERS); |
} |
break; |
@@ -763,7 +766,7 @@ |
void FullCodeGenerator::VisitDeclaration(Declaration* decl) { |
- EmitDeclaration(decl->proxy()->var(), decl->mode(), decl->fun()); |
+ EmitDeclaration(decl->proxy(), decl->mode(), decl->fun()); |
} |