Index: src/arm/ic-arm.cc |
diff --git a/src/arm/ic-arm.cc b/src/arm/ic-arm.cc |
index 133404c1b3ce9933466370ba5bb0db7220a2d701..1028f8fd2b81fe6c5599ca26a6d243129b453aff 100644 |
--- a/src/arm/ic-arm.cc |
+++ b/src/arm/ic-arm.cc |
@@ -333,14 +333,18 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) { |
// -- lr : return address |
// -- r0 : receiver |
// ----------------------------------- |
- Label miss; |
+ Label miss, slow; |
GenerateNameDictionaryReceiverCheck(masm, r0, r1, r3, r4, &miss); |
// r1: elements |
- GenerateDictionaryLoad(masm, &miss, r1, r2, r0, r3, r4); |
+ GenerateDictionaryLoad(masm, &slow, r1, r2, r0, r3, r4); |
__ Ret(); |
+ // Dictionary load failed, go slow (but don't miss). |
+ __ bind(&slow); |
+ GenerateRuntimeGetProperty(masm); |
+ |
// Cache miss: Jump to runtime. |
__ bind(&miss); |
GenerateMiss(masm); |