Index: src/x87/ic-x87.cc |
diff --git a/src/x87/ic-x87.cc b/src/x87/ic-x87.cc |
index ec126f70891c31c9fb144e3378e488b040952907..6cd9ac4e68312fa8002f2a548361d0c04b11232d 100644 |
--- a/src/x87/ic-x87.cc |
+++ b/src/x87/ic-x87.cc |
@@ -947,15 +947,19 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) { |
// -- edx : receiver |
// -- esp[0] : return address |
// ----------------------------------- |
- Label miss; |
+ Label miss, slow; |
GenerateNameDictionaryReceiverCheck(masm, edx, eax, ebx, &miss); |
// eax: elements |
// Search the dictionary placing the result in eax. |
- GenerateDictionaryLoad(masm, &miss, eax, ecx, edi, ebx, eax); |
+ GenerateDictionaryLoad(masm, &slow, eax, ecx, edi, ebx, eax); |
__ ret(0); |
+ // Dictionary load failed, go slow (but don't miss). |
+ __ bind(&slow); |
+ GenerateRuntimeGetProperty(masm); |
+ |
// Cache miss: Jump to runtime. |
__ bind(&miss); |
GenerateMiss(masm); |