| Index: src/mips/stub-cache-mips.cc
|
| diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc
|
| index 2e946f98f10a955ee49cc3d3dbfe1b1b7c225263..07844f8d3796f30084303cf9e37b16624ef25cf6 100644
|
| --- a/src/mips/stub-cache-mips.cc
|
| +++ b/src/mips/stub-cache-mips.cc
|
| @@ -3098,8 +3098,15 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadElement(Map* receiver_map) {
|
| // -- a0 : key
|
| // -- a1 : receiver
|
| // -----------------------------------
|
| + MaybeObject* maybe_stub;
|
| + if (receiver_map->has_fast_elements()) {
|
| + maybe_stub = KeyedLoadFastElementStub().TryGetCode();
|
| + } else {
|
| + ASSERT(receiver_map->has_external_array_elements());
|
| + JSObject::ElementsKind elements_kind = receiver_map->elements_kind();
|
| + maybe_stub = KeyedLoadExternalArrayStub(elements_kind).TryGetCode();
|
| + }
|
| Code* stub;
|
| - MaybeObject* maybe_stub = ComputeSharedKeyedLoadElementStub(receiver_map);
|
| if (!maybe_stub->To(&stub)) return maybe_stub;
|
| __ DispatchMap(a1,
|
| a2,
|
| @@ -3181,7 +3188,8 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreField(JSObject* object,
|
| }
|
|
|
|
|
| -MaybeObject* KeyedStoreStubCompiler::CompileStoreElement(Map* receiver_map) {
|
| +MaybeObject* KeyedStoreStubCompiler::CompileStoreElement(
|
| + Map* receiver_map) {
|
| // ----------- S t a t e -------------
|
| // -- a0 : value
|
| // -- a1 : key
|
| @@ -3189,8 +3197,16 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreElement(Map* receiver_map) {
|
| // -- ra : return address
|
| // -- a3 : scratch
|
| // -----------------------------------
|
| + MaybeObject* maybe_stub;
|
| + if (receiver_map->has_fast_elements()) {
|
| + bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE;
|
| + maybe_stub = KeyedStoreFastElementStub(is_js_array).TryGetCode();
|
| + } else {
|
| + ASSERT(receiver_map->has_external_array_elements());
|
| + JSObject::ElementsKind elements_kind = receiver_map->elements_kind();
|
| + maybe_stub = KeyedStoreExternalArrayStub(elements_kind).TryGetCode();
|
| + }
|
| Code* stub;
|
| - MaybeObject* maybe_stub = ComputeSharedKeyedStoreElementStub(receiver_map);
|
| if (!maybe_stub->To(&stub)) return maybe_stub;
|
| __ DispatchMap(a2,
|
| a3,
|
|
|