Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index eb0f12a39417dcc6f93429cb5ed69f528ca67ace..c3d0d7e5d562d7d28fa92f65d0e952a1c5173da8 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1097,15 +1097,10 @@ void LoadIC::UpdateCaches(LookupResult* lookup, |
} |
-MaybeObject* KeyedLoadIC::GetFastElementStubWithoutMapCheck( |
- bool is_js_array) { |
- return KeyedLoadFastElementStub().TryGetCode(); |
-} |
- |
- |
-MaybeObject* KeyedLoadIC::GetExternalArrayStubWithoutMapCheck( |
+MaybeObject* KeyedLoadIC::GetElementStubWithoutMapCheck( |
+ bool is_js_array, |
JSObject::ElementsKind elements_kind) { |
- return KeyedLoadExternalArrayStub(elements_kind).TryGetCode(); |
+ return KeyedLoadElementStub(elements_kind).TryGetCode(); |
} |
@@ -1699,13 +1694,14 @@ MaybeObject* KeyedIC::ComputeMonomorphicStubWithoutMapCheck( |
if ((receiver_map->instance_type() & kNotStringTag) == 0) { |
ASSERT(string_stub() != NULL); |
return string_stub(); |
- } else if (receiver_map->has_external_array_elements()) { |
- return GetExternalArrayStubWithoutMapCheck(receiver_map->elements_kind()); |
- } else if (receiver_map->has_fast_elements()) { |
- bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE; |
- return GetFastElementStubWithoutMapCheck(is_js_array); |
} else { |
- return generic_stub; |
+ ASSERT(receiver_map->has_dictionary_elements() || |
+ receiver_map->has_fast_elements() || |
+ receiver_map->has_fast_double_elements() || |
+ receiver_map->has_external_array_elements()); |
+ bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE; |
+ return GetElementStubWithoutMapCheck(is_js_array, |
+ receiver_map->elements_kind()); |
} |
} |
@@ -1717,6 +1713,7 @@ MaybeObject* KeyedIC::ComputeMonomorphicStub(JSObject* receiver, |
Code* result = NULL; |
if (receiver->HasFastElements() || |
receiver->HasExternalArrayElements() || |
+ receiver->HasFastDoubleElements() || |
receiver->HasDictionaryElements()) { |
MaybeObject* maybe_stub = |
isolate()->stub_cache()->ComputeKeyedLoadOrStoreElement( |
@@ -1729,15 +1726,10 @@ MaybeObject* KeyedIC::ComputeMonomorphicStub(JSObject* receiver, |
} |
-MaybeObject* KeyedStoreIC::GetFastElementStubWithoutMapCheck( |
- bool is_js_array) { |
- return KeyedStoreFastElementStub(is_js_array).TryGetCode(); |
-} |
- |
- |
-MaybeObject* KeyedStoreIC::GetExternalArrayStubWithoutMapCheck( |
+MaybeObject* KeyedStoreIC::GetElementStubWithoutMapCheck( |
+ bool is_js_array, |
JSObject::ElementsKind elements_kind) { |
- return KeyedStoreExternalArrayStub(elements_kind).TryGetCode(); |
+ return KeyedStoreElementStub(is_js_array, elements_kind).TryGetCode(); |
} |