Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 98d86b5e39f41e97b45bc301e92e5768ba4a2616..e934a89a446902d1f053f912fa61dcb12fd5813e 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -1672,11 +1672,10 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver, |
return generic_stub(); |
} |
- // If the maximum number of receiver maps has been exceeded, use the generic |
- // version of the IC. |
+ // If the maximum number of receiver maps has been exceeded, use the |
+ // megamorphic version of the IC. |
if (target_receiver_maps.length() > kMaxKeyedPolymorphism) { |
- TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "max polymorph exceeded"); |
- return generic_stub(); |
+ return megamorphic_stub(); |
} |
// Make sure all polymorphic handlers have the same store mode, otherwise the |
@@ -1941,6 +1940,13 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object, |
// static |
+void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
+ StrictMode strict_mode) { |
+ PropertyICCompiler::GenerateRuntimeSetProperty(masm, strict_mode); |
+} |
+ |
+ |
+// static |
void CallIC::OnTypeFeedbackChanged(Isolate* isolate, Code* host, |
TypeFeedbackVector* vector, State old_state, |
State new_state) { |