| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 459ef15756a5b11d26cf238e33070a30816c9144..a20ab718e4ff2c5d520850b1c8b28e5360b9b725 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -138,14 +138,11 @@ void FastNewContextStub::Generate(MacroAssembler* masm) {
|
| __ Set(ebx, Immediate(0)); // Set to NULL.
|
| __ mov(Operand(eax, Context::SlotOffset(Context::CLOSURE_INDEX)), ecx);
|
| __ mov(Operand(eax, Context::SlotOffset(Context::FCONTEXT_INDEX)), eax);
|
| - __ mov(Operand(eax, Context::SlotOffset(Context::PREVIOUS_INDEX)), ebx);
|
| + __ mov(Operand(eax, Context::SlotOffset(Context::PREVIOUS_INDEX)), esi);
|
| __ mov(Operand(eax, Context::SlotOffset(Context::EXTENSION_INDEX)), ebx);
|
|
|
| - // Copy the global object from the surrounding context. We go through the
|
| - // context in the function (ecx) to match the allocation behavior we have
|
| - // in the runtime system (see Heap::AllocateFunctionContext).
|
| - __ mov(ebx, FieldOperand(ecx, JSFunction::kContextOffset));
|
| - __ mov(ebx, Operand(ebx, Context::SlotOffset(Context::GLOBAL_INDEX)));
|
| + // Copy the global object from the previous context.
|
| + __ mov(ebx, Operand(esi, Context::SlotOffset(Context::GLOBAL_INDEX)));
|
| __ mov(Operand(eax, Context::SlotOffset(Context::GLOBAL_INDEX)), ebx);
|
|
|
| // Initialize the rest of the slots to undefined.
|
|
|