| Index: src/ia32/stub-cache-ia32.cc
|
| diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc
|
| index c9c22d2008553c5ae8cf1856824bd9bd98d86558..d5c432af80fae72c4688eac6519c2968c63dd40d 100644
|
| --- a/src/ia32/stub-cache-ia32.cc
|
| +++ b/src/ia32/stub-cache-ia32.cc
|
| @@ -2671,6 +2671,9 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreFastElement(
|
| // -- edx : receiver
|
| // -- esp[0] : return address
|
| // -----------------------------------
|
| + Label miss;
|
| + __ JumpIfSmi(edx, &miss);
|
| +
|
| bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE;
|
| MaybeObject* maybe_stub =
|
| KeyedStoreFastElementStub(is_js_array).TryGetCode();
|
| @@ -2681,6 +2684,7 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreFastElement(
|
| Handle<Code>(stub),
|
| DO_SMI_CHECK);
|
|
|
| + __ bind(&miss);
|
| Handle<Code> ic = isolate()->builtins()->KeyedStoreIC_Miss();
|
| __ jmp(ic, RelocInfo::CODE_TARGET);
|
|
|
| @@ -3133,6 +3137,9 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadFastElement(Map* receiver_map) {
|
| // -- edx : receiver
|
| // -- esp[0] : return address
|
| // -----------------------------------
|
| + Label miss;
|
| + __ JumpIfSmi(edx, &miss);
|
| +
|
| MaybeObject* maybe_stub = KeyedLoadFastElementStub().TryGetCode();
|
| Code* stub;
|
| if (!maybe_stub->To(&stub)) return maybe_stub;
|
| @@ -3141,6 +3148,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadFastElement(Map* receiver_map) {
|
| Handle<Code>(stub),
|
| DO_SMI_CHECK);
|
|
|
| + __ bind(&miss);
|
| GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);
|
|
|
| // Return the generated code.
|
|
|