Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 475f1611c0575114e5853e5e4e0bd334ac3c59ee..4b77d92507a435c9c2446631118790158c731e73 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -992,12 +992,14 @@ Object* KeyedLoadIC::Load(State state, |
} |
} |
set_target(stub); |
- // For JSObjects that are not value wrappers and that do not have |
- // indexed interceptors, we initialize the inlined fast case (if |
- // present) by patching the inlined map check. |
+ // For JSObjects with fast elements that are not value wrappers |
+ // and that do not have indexed interceptors, we initialize the |
+ // inlined fast case (if present) by patching the inlined map |
+ // check. |
if (object->IsJSObject() && |
!object->IsJSValue() && |
- !JSObject::cast(*object)->HasIndexedInterceptor()) { |
+ !JSObject::cast(*object)->HasIndexedInterceptor() && |
+ JSObject::cast(*object)->HasFastElements()) { |
Map* map = JSObject::cast(*object)->map(); |
PatchInlinedLoad(address(), map); |
} |