| Index: src/type-info.cc
|
| diff --git a/src/type-info.cc b/src/type-info.cc
|
| index 8289d91125f5c3012b4552dc4b729da4b8770fa1..058ad4cf8f11480f07776c72e9489393e32b68ca 100644
|
| --- a/src/type-info.cc
|
| +++ b/src/type-info.cc
|
| @@ -280,7 +280,8 @@
|
| receiver_types->Clear();
|
| if (!slot.IsInvalid()) {
|
| LoadICNexus nexus(feedback_vector_, slot);
|
| - CollectReceiverTypes(isolate()->load_stub_cache(), &nexus, name,
|
| + Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC);
|
| + CollectReceiverTypes(isolate()->load_stub_cache(), &nexus, name, flags,
|
| receiver_types);
|
| }
|
| }
|
| @@ -306,7 +307,8 @@
|
| Handle<Name> name,
|
| SmallMapList* receiver_types) {
|
| receiver_types->Clear();
|
| - CollectReceiverTypes(isolate()->store_stub_cache(), slot, name,
|
| + Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC);
|
| + CollectReceiverTypes(isolate()->store_stub_cache(), slot, name, flags,
|
| receiver_types);
|
| }
|
|
|
| @@ -329,19 +331,22 @@
|
| void TypeFeedbackOracle::CollectReceiverTypes(StubCache* stub_cache,
|
| FeedbackVectorSlot slot,
|
| Handle<Name> name,
|
| + Code::Flags flags,
|
| SmallMapList* types) {
|
| StoreICNexus nexus(feedback_vector_, slot);
|
| - CollectReceiverTypes(stub_cache, &nexus, name, types);
|
| + CollectReceiverTypes(stub_cache, &nexus, name, flags, types);
|
| }
|
|
|
| void TypeFeedbackOracle::CollectReceiverTypes(StubCache* stub_cache,
|
| FeedbackNexus* nexus,
|
| Handle<Name> name,
|
| + Code::Flags flags,
|
| SmallMapList* types) {
|
| if (FLAG_collect_megamorphic_maps_from_stub_cache &&
|
| nexus->ic_state() == MEGAMORPHIC) {
|
| types->Reserve(4, zone());
|
| - stub_cache->CollectMatchingMaps(types, name, native_context_, zone());
|
| + stub_cache->CollectMatchingMaps(types, name, flags, native_context_,
|
| + zone());
|
| } else {
|
| CollectReceiverTypes(nexus, types);
|
| }
|
|
|