Commit 394cf511 authored by verwaest@chromium.org's avatar verwaest@chromium.org

Calculate proper receiver map for monomorphic transitioning ICs.

This fixes a regression caused by
https://chromiumcodereview.appspot.com/11953025/

Review URL: https://chromiumcodereview.appspot.com/12217131

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 25f9eaea
......@@ -1544,9 +1544,10 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver,
if (ic_state == UNINITIALIZED || ic_state == PREMONOMORPHIC) {
// Optimistically assume that ICs that haven't reached the MONOMORPHIC state
// yet will do so and stay there.
Handle<Map> monomorphic_map = ComputeTransitionedMap(receiver, stub_kind);
stub_kind = GetNoTransitionStubKind(stub_kind);
return isolate()->stub_cache()->ComputeKeyedStoreElement(
receiver_map, stub_kind, strict_mode, grow_mode);
monomorphic_map, stub_kind, strict_mode, grow_mode);
}
GetReceiverMapsForStub(Handle<Code>(target()), &target_receiver_maps);
......@@ -1633,8 +1634,7 @@ Handle<Map> KeyedStoreIC::ComputeTransitionedMap(Handle<JSObject> receiver,
FAST_HOLEY_DOUBLE_ELEMENTS);
case STORE_NO_TRANSITION:
case STORE_AND_GROW_NO_TRANSITION:
UNREACHABLE();
break;
return Handle<Map>(receiver->map());
}
return Handle<Map>::null();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment