Index: src/type-info.h |
diff --git a/src/type-info.h b/src/type-info.h |
index 7143458a350023381b81247e186573fa170abda3..96539c923b5b96e0162f44147dfe364c2963924a 100644 |
--- a/src/type-info.h |
+++ b/src/type-info.h |
@@ -28,6 +28,7 @@ class TypeFeedbackOracle: public ZoneObject { |
InlineCacheState LoadInlineCacheState(TypeFeedbackId id); |
InlineCacheState LoadInlineCacheState(FeedbackVectorICSlot slot); |
bool StoreIsUninitialized(TypeFeedbackId id); |
+ bool StoreIsUninitialized(FeedbackVectorICSlot slot); |
bool CallIsUninitialized(FeedbackVectorICSlot slot); |
bool CallIsMonomorphic(FeedbackVectorICSlot slot); |
bool KeyedArrayCallIsHoley(TypeFeedbackId id); |
@@ -42,6 +43,9 @@ class TypeFeedbackOracle: public ZoneObject { |
void GetStoreModeAndKeyType(TypeFeedbackId id, |
KeyedAccessStoreMode* store_mode, |
IcCheckType* key_type); |
+ void GetStoreModeAndKeyType(FeedbackVectorICSlot slot, |
+ KeyedAccessStoreMode* store_mode, |
+ IcCheckType* key_type); |
void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type); |
void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name, |
@@ -51,13 +55,20 @@ class TypeFeedbackOracle: public ZoneObject { |
IcCheckType* key_type); |
void AssignmentReceiverTypes(TypeFeedbackId id, Handle<Name> name, |
SmallMapList* receiver_types); |
+ void AssignmentReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name, |
+ SmallMapList* receiver_types); |
void KeyedAssignmentReceiverTypes(TypeFeedbackId id, |
SmallMapList* receiver_types, |
KeyedAccessStoreMode* store_mode, |
IcCheckType* key_type); |
+ void KeyedAssignmentReceiverTypes(FeedbackVectorICSlot slot, |
+ SmallMapList* receiver_types, |
+ KeyedAccessStoreMode* store_mode, |
+ IcCheckType* key_type); |
void CountReceiverTypes(TypeFeedbackId id, |
SmallMapList* receiver_types); |
+ void CollectReceiverTypes(FeedbackVectorICSlot slot, SmallMapList* types); |
void CollectReceiverTypes(TypeFeedbackId id, |
SmallMapList* types); |
template <class T> |
@@ -102,6 +113,8 @@ class TypeFeedbackOracle: public ZoneObject { |
Isolate* isolate() const { return isolate_; } |
private: |
+ void CollectReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name, |
+ Code::Flags flags, SmallMapList* types); |
void CollectReceiverTypes(TypeFeedbackId id, Handle<Name> name, |
Code::Flags flags, SmallMapList* types); |
template <class T> |