Index: src/arm/stub-cache-arm.cc |
=================================================================== |
--- src/arm/stub-cache-arm.cc (revision 2097) |
+++ src/arm/stub-cache-arm.cc (working copy) |
@@ -246,6 +246,7 @@ |
void StubCompiler::GenerateLoadInterceptor(MacroAssembler* masm, |
JSObject* object, |
JSObject* holder, |
+ Smi* lookup_hint, |
Register receiver, |
Register name, |
Register scratch1, |
@@ -263,11 +264,13 @@ |
__ push(receiver); // receiver |
__ push(reg); // holder |
__ push(name); // name |
+ __ mov(scratch1, Operand(lookup_hint)); |
+ __ push(scratch1); |
// Do tail-call to the runtime system. |
ExternalReference load_ic_property = |
ExternalReference(IC_Utility(IC::kLoadInterceptorProperty)); |
- __ TailCallRuntime(load_ic_property, 3); |
+ __ TailCallRuntime(load_ic_property, 4); |
} |
@@ -909,7 +912,15 @@ |
__ ldr(r0, MemOperand(sp, 0)); |
- GenerateLoadInterceptor(masm(), object, holder, r0, r2, r3, r1, &miss); |
+ GenerateLoadInterceptor(masm(), |
+ object, |
+ holder, |
+ holder->InterceptorPropertyLookupHint(name), |
+ r0, |
+ r2, |
+ r3, |
+ r1, |
+ &miss); |
__ bind(&miss); |
GenerateLoadMiss(masm(), Code::LOAD_IC); |
@@ -1015,7 +1026,15 @@ |
__ cmp(r2, Operand(Handle<String>(name))); |
__ b(ne, &miss); |
- GenerateLoadInterceptor(masm(), receiver, holder, r0, r2, r3, r1, &miss); |
+ GenerateLoadInterceptor(masm(), |
+ receiver, |
+ holder, |
+ Smi::FromInt(JSObject::kLookupInHolder), |
+ r0, |
+ r2, |
+ r3, |
+ r1, |
+ &miss); |
__ bind(&miss); |
GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC); |