| 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();
|
| }
|
|
|
|
|
|
|