Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index e17490406bfe6f660d85966ef1f9f4ef461e9b60..ff9ec1bb42a0e56183228b992254817f4f5b4a6c 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1454,7 +1454,8 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver, |
if (IsTransitionStoreMode(store_mode)) { |
transitioned_receiver_map = ComputeTransitionedMap(receiver, store_mode); |
} |
- if (receiver_map.is_identical_to(previous_receiver_map) || |
+ if ((receiver_map.is_identical_to(previous_receiver_map) && |
+ IsTransitionStoreMode(store_mode)) || |
IsTransitionOfMonomorphicTarget( |
MapToType<HeapType>(transitioned_receiver_map, isolate()))) { |
// If the "old" and "new" maps are in the same elements map family, or |