Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 53a5eaf1a65d7e2c8d95bb1478226d7789a1d5a1..d6c93bfe9ac1c0be9039c5df1b517145a831ce58 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -1637,6 +1637,14 @@ void KeyedStoreIC::UpdateStoreElement(Handle<Map> receiver_map, |
return ConfigureVectorState(Handle<Name>(), monomorphic_map, handler); |
} |
+ for (int i = 0; i < target_receiver_maps.length(); i++) { |
+ if (!target_receiver_maps.at(i).is_null() && |
+ target_receiver_maps.at(i)->instance_type() == JS_VALUE_TYPE) { |
+ TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "JSValue"); |
+ return; |
+ } |
+ } |
+ |
// There are several special cases where an IC that is MONOMORPHIC can still |
// transition to a different GetNonTransitioningStoreMode IC that handles a |
// superset of the original IC. Handle those here if the receiver map hasn't |