Index: src/type-info.h |
diff --git a/src/type-info.h b/src/type-info.h |
index 5ec6929a33cc052c63bd9876d1727f4bc41ed4d8..e0f7394c7c605d10f35bd827ecb39e6d182513cc 100644 |
--- a/src/type-info.h |
+++ b/src/type-info.h |
@@ -24,6 +24,7 @@ class TypeFeedbackOracle: public ZoneObject { |
Handle<Context> native_context, Zone* zone); |
bool LoadIsUninitialized(TypeFeedbackId id); |
+ bool LoadIsUninitialized(FeedbackVectorICSlot slot); |
bool StoreIsUninitialized(TypeFeedbackId id); |
bool CallIsUninitialized(FeedbackVectorICSlot slot); |
bool CallIsMonomorphic(FeedbackVectorICSlot slot); |
@@ -42,9 +43,14 @@ class TypeFeedbackOracle: public ZoneObject { |
void PropertyReceiverTypes(TypeFeedbackId id, Handle<String> name, |
SmallMapList* receiver_types); |
+ void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<String> name, |
+ SmallMapList* receiver_types); |
void KeyedPropertyReceiverTypes(TypeFeedbackId id, |
SmallMapList* receiver_types, |
bool* is_string); |
+ void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot, |
+ SmallMapList* receiver_types, |
+ bool* is_string); |
void AssignmentReceiverTypes(TypeFeedbackId id, |
Handle<String> name, |
SmallMapList* receiver_types); |
@@ -57,6 +63,8 @@ class TypeFeedbackOracle: public ZoneObject { |
void CollectReceiverTypes(TypeFeedbackId id, |
SmallMapList* types); |
+ template <class T> |
+ void CollectReceiverTypes(T* obj, SmallMapList* types); |
static bool CanRetainOtherContext(Map* map, Context* native_context); |
static bool CanRetainOtherContext(JSFunction* function, |
@@ -98,6 +106,13 @@ class TypeFeedbackOracle: public ZoneObject { |
Handle<String> name, |
Code::Flags flags, |
SmallMapList* types); |
+ template <class T> |
+ void CollectReceiverTypes(T* obj, Handle<String> name, Code::Flags flags, |
+ SmallMapList* types); |
+ |
+ // Returns true if there is at least one string map and if |
+ // all maps are string maps. |
+ bool HasOnlyStringMaps(SmallMapList* receiver_types); |
void SetInfo(TypeFeedbackId id, Object* target); |