Index: src/x64/ic-x64.cc |
diff --git a/src/x64/ic-x64.cc b/src/x64/ic-x64.cc |
index 578aea7ca208452e56324abfa8117f28a5215121..0cda1df16bd000674e60b600e7c0af54ab5edbdf 100644 |
--- a/src/x64/ic-x64.cc |
+++ b/src/x64/ic-x64.cc |
@@ -972,15 +972,19 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) { |
// -- rcx : name |
// -- rsp[0] : return address |
// ----------------------------------- |
- Label miss; |
+ Label miss, slow; |
GenerateNameDictionaryReceiverCheck(masm, rax, rdx, rbx, &miss); |
// rdx: elements |
// Search the dictionary placing the result in rax. |
- GenerateDictionaryLoad(masm, &miss, rdx, rcx, rbx, rdi, rax); |
+ GenerateDictionaryLoad(masm, &slow, rdx, rcx, rbx, rdi, rax); |
__ ret(0); |
+ // Dictionary load failed, go slow (but don't miss). |
+ __ bind(&slow); |
+ GenerateRuntimeGetProperty(masm); |
+ |
// Cache miss: Jump to runtime. |
__ bind(&miss); |
GenerateMiss(masm); |