| Index: src/x64/full-codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/full-codegen-x64.cc (revision 9109)
|
| +++ src/x64/full-codegen-x64.cc (working copy)
|
| @@ -659,10 +659,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);
|
| @@ -699,10 +700,12 @@
|
| int offset = Context::SlotOffset(slot->index());
|
| __ movq(rbx, rsi);
|
| __ RecordWrite(rbx, offset, result_register(), rcx);
|
| + PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
|
| } else if (mode == Variable::CONST || mode == Variable::LET) {
|
| __ LoadRoot(kScratchRegister, Heap::kTheHoleValueRootIndex);
|
| __ movq(ContextOperand(rsi, slot->index()), kScratchRegister);
|
| // No write barrier since the hole value is in old space.
|
| + PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
|
| }
|
| break;
|
|
|
| @@ -734,7 +737,7 @@
|
|
|
|
|
| void FullCodeGenerator::VisitDeclaration(Declaration* decl) {
|
| - EmitDeclaration(decl->proxy()->var(), decl->mode(), decl->fun());
|
| + EmitDeclaration(decl->proxy(), decl->mode(), decl->fun());
|
| }
|
|
|
|
|
|
|