| Index: src/ia32/stub-cache-ia32.cc | 
| diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc | 
| index 9b6d27cfc4bb2a3a7e5ff398a763c77025067468..9091288b9ff8d3b7646cddbf219e2d9c13298724 100644 | 
| --- a/src/ia32/stub-cache-ia32.cc | 
| +++ b/src/ia32/stub-cache-ia32.cc | 
| @@ -2859,6 +2859,43 @@ Handle<Code> LoadStubCompiler::CompileLoadCallback( | 
| } | 
|  | 
|  | 
| +Handle<Code> LoadStubCompiler::CompileLoadViaGetter( | 
| +    Handle<String> name, | 
| +    Handle<JSObject> receiver, | 
| +    Handle<JSObject> holder, | 
| +    Handle<JSFunction> getter) { | 
| +  // ----------- S t a t e ------------- | 
| +  //  -- ecx    : name | 
| +  //  -- edx    : receiver | 
| +  //  -- esp[0] : return address | 
| +  // ----------------------------------- | 
| +  Label miss; | 
| + | 
| +  // Check that the maps haven't changed. | 
| +  __ JumpIfSmi(edx, &miss); | 
| +  CheckPrototypes(receiver, edx, holder, ebx, eax, edi, name, &miss); | 
| + | 
| +  { | 
| +    FrameScope scope(masm(), StackFrame::INTERNAL); | 
| + | 
| +    // Call the JavaScript getter with the receiver on the stack. | 
| +    __ push(edx); | 
| +    __ InvokeFunction(getter, ParameterCount(0), CALL_FUNCTION, | 
| +                      NullCallWrapper(), CALL_AS_METHOD); | 
| + | 
| +    // Restore context register. | 
| +    __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); | 
| +  } | 
| +  __ ret(0); | 
| + | 
| +  __ bind(&miss); | 
| +  GenerateLoadMiss(masm(), Code::LOAD_IC); | 
| + | 
| +  // Return the generated code. | 
| +  return GetCode(CALLBACKS, name); | 
| +} | 
| + | 
| + | 
| Handle<Code> LoadStubCompiler::CompileLoadConstant(Handle<JSObject> object, | 
| Handle<JSObject> holder, | 
| Handle<JSFunction> value, | 
|  |