Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index bf2a649f7f298d1e53fb53b035b5dcfb323a7ee7..363303617628cfc5f6fe6639bc16e979e8aa2621 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1054,7 +1054,13 @@ Handle<Code> KeyedLoadIC::GetElementStubWithoutMapCheck( |
ElementsKind elements_kind, |
KeyedAccessGrowMode grow_mode) { |
ASSERT(grow_mode == DO_NOT_ALLOW_JSARRAY_GROWTH); |
- return KeyedLoadElementStub(elements_kind).GetCode(); |
+ if (IsFastElementsKind(elements_kind) || |
+ IsExternalArrayElementsKind(elements_kind)) { |
+ return KeyedLoadFastElementStub(is_js_array, elements_kind).GetCode(); |
+ } else { |
+ ASSERT(elements_kind == DICTIONARY_ELEMENTS); |
+ return KeyedLoadDictionaryElementStub().GetCode(); |
+ } |
} |