| Index: src/ic/arm/handler-compiler-arm.cc | 
| diff --git a/src/ic/arm/handler-compiler-arm.cc b/src/ic/arm/handler-compiler-arm.cc | 
| index c99e06a81623e62f543c31c722517ef668877a2c..c4f95a4e5d197c340aaf2caad3bd947f523ebf99 100644 | 
| --- a/src/ic/arm/handler-compiler-arm.cc | 
| +++ b/src/ic/arm/handler-compiler-arm.cc | 
| @@ -18,7 +18,7 @@ namespace internal { | 
|  | 
| void NamedLoadHandlerCompiler::GenerateLoadViaGetter( | 
| MacroAssembler* masm, Handle<HeapType> type, Register receiver, | 
| -    Handle<JSFunction> getter) { | 
| +    Register holder, int accessor_index, int expected_arguments) { | 
| // ----------- S t a t e ------------- | 
| //  -- r0    : receiver | 
| //  -- r2    : name | 
| @@ -27,7 +27,7 @@ void NamedLoadHandlerCompiler::GenerateLoadViaGetter( | 
| { | 
| FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); | 
|  | 
| -    if (!getter.is_null()) { | 
| +    if (accessor_index >= 0) { | 
| // Call the JavaScript getter with the receiver on the stack. | 
| if (IC::TypeToMap(*type, masm->isolate())->IsJSGlobalObjectMap()) { | 
| // Swap in the global receiver. | 
| @@ -36,9 +36,14 @@ void NamedLoadHandlerCompiler::GenerateLoadViaGetter( | 
| } | 
| __ push(receiver); | 
| ParameterCount actual(0); | 
| -      ParameterCount expected(getter); | 
| -      __ InvokeFunction(getter, expected, actual, CALL_FUNCTION, | 
| -                        NullCallWrapper()); | 
| +      ParameterCount expected(expected_arguments); | 
| +      Register scratch = holder; | 
| +      __ ldr(scratch, FieldMemOperand(holder, HeapObject::kMapOffset)); | 
| +      __ LoadInstanceDescriptors(scratch, scratch); | 
| +      __ ldr(scratch, FieldMemOperand(scratch, DescriptorArray::GetValueOffset( | 
| +                                                   accessor_index))); | 
| +      __ ldr(r1, FieldMemOperand(scratch, AccessorPair::kGetterOffset)); | 
| +      __ InvokeFunction(r1, expected, actual, CALL_FUNCTION, NullCallWrapper()); | 
| } else { | 
| // If we generate a global code snippet for deoptimization only, remember | 
| // the place to continue after deoptimization. | 
|  |