| Index: src/type-info.cc
|
| diff --git a/src/type-info.cc b/src/type-info.cc
|
| index 61af125c47c22f7fa9ead72f69b4be9a4cab67d6..058ad4cf8f11480f07776c72e9489393e32b68ca 100644
|
| --- a/src/type-info.cc
|
| +++ b/src/type-info.cc
|
| @@ -281,7 +281,8 @@ void TypeFeedbackOracle::PropertyReceiverTypes(FeedbackVectorSlot slot,
|
| if (!slot.IsInvalid()) {
|
| LoadICNexus nexus(feedback_vector_, slot);
|
| Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC);
|
| - CollectReceiverTypes(&nexus, name, flags, receiver_types);
|
| + CollectReceiverTypes(isolate()->load_stub_cache(), &nexus, name, flags,
|
| + receiver_types);
|
| }
|
| }
|
|
|
| @@ -307,7 +308,8 @@ void TypeFeedbackOracle::AssignmentReceiverTypes(FeedbackVectorSlot slot,
|
| SmallMapList* receiver_types) {
|
| receiver_types->Clear();
|
| Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC);
|
| - CollectReceiverTypes(slot, name, flags, receiver_types);
|
| + CollectReceiverTypes(isolate()->store_stub_cache(), slot, name, flags,
|
| + receiver_types);
|
| }
|
|
|
|
|
| @@ -326,24 +328,25 @@ void TypeFeedbackOracle::CountReceiverTypes(FeedbackVectorSlot slot,
|
| if (!slot.IsInvalid()) CollectReceiverTypes(slot, receiver_types);
|
| }
|
|
|
| -
|
| -void TypeFeedbackOracle::CollectReceiverTypes(FeedbackVectorSlot slot,
|
| +void TypeFeedbackOracle::CollectReceiverTypes(StubCache* stub_cache,
|
| + FeedbackVectorSlot slot,
|
| Handle<Name> name,
|
| Code::Flags flags,
|
| SmallMapList* types) {
|
| StoreICNexus nexus(feedback_vector_, slot);
|
| - CollectReceiverTypes(&nexus, name, flags, types);
|
| + CollectReceiverTypes(stub_cache, &nexus, name, flags, types);
|
| }
|
|
|
| -void TypeFeedbackOracle::CollectReceiverTypes(FeedbackNexus* nexus,
|
| +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());
|
| - isolate()->stub_cache()->CollectMatchingMaps(
|
| - types, name, flags, native_context_, zone());
|
| + stub_cache->CollectMatchingMaps(types, name, flags, native_context_,
|
| + zone());
|
| } else {
|
| CollectReceiverTypes(nexus, types);
|
| }
|
|
|