Index: src/type-info.h |
diff --git a/src/type-info.h b/src/type-info.h |
index 05c76f2ee103b991b07d34670e595f9235d74493..a0d32158445934a12d99b5d73603c79f8686bf11 100644 |
--- a/src/type-info.h |
+++ b/src/type-info.h |
@@ -218,20 +218,9 @@ enum StringStubFeedback { |
// Forward declarations. |
-// TODO(rossberg): these should all go away eventually. |
-class Assignment; |
-class Call; |
-class CallNew; |
-class CaseClause; |
class CompilationInfo; |
-class CountOperation; |
-class Expression; |
-class ForInStatement; |
class ICStub; |
-class Property; |
class SmallMapList; |
-class ObjectLiteral; |
-class ObjectLiteralProperty; |
class TypeFeedbackOracle: public ZoneObject { |
@@ -245,14 +234,14 @@ class TypeFeedbackOracle: public ZoneObject { |
bool LoadIsUninitialized(TypeFeedbackId id); |
bool LoadIsPreMonomorphic(TypeFeedbackId id); |
bool LoadIsPolymorphic(TypeFeedbackId id); |
- bool StoreIsUninitialized(TypeFeedbackId ast_id); |
- bool StoreIsMonomorphicNormal(TypeFeedbackId ast_id); |
- bool StoreIsPreMonomorphic(TypeFeedbackId ast_id); |
- bool StoreIsKeyedPolymorphic(TypeFeedbackId ast_id); |
- bool CallIsMonomorphic(Call* expr); |
- bool KeyedArrayCallIsHoley(Call* expr); |
- bool CallNewIsMonomorphic(CallNew* expr); |
- bool ObjectLiteralStoreIsMonomorphic(ObjectLiteralProperty* prop); |
+ bool StoreIsUninitialized(TypeFeedbackId id); |
+ bool StoreIsMonomorphicNormal(TypeFeedbackId id); |
+ bool StoreIsPreMonomorphic(TypeFeedbackId id); |
+ bool StoreIsKeyedPolymorphic(TypeFeedbackId id); |
+ bool CallIsMonomorphic(TypeFeedbackId aid); |
+ bool KeyedArrayCallIsHoley(TypeFeedbackId id); |
+ bool CallNewIsMonomorphic(TypeFeedbackId id); |
+ bool ObjectLiteralStoreIsMonomorphic(TypeFeedbackId id); |
// TODO(1571) We can't use ForInStatement::ForInType as the return value due |
// to various cycles in our headers. |
@@ -263,21 +252,22 @@ class TypeFeedbackOracle: public ZoneObject { |
Handle<Map> LoadMonomorphicReceiverType(TypeFeedbackId id); |
Handle<Map> StoreMonomorphicReceiverType(TypeFeedbackId id); |
- KeyedAccessStoreMode GetStoreMode(TypeFeedbackId ast_id); |
+ KeyedAccessStoreMode GetStoreMode(TypeFeedbackId id); |
void LoadReceiverTypes(TypeFeedbackId id, |
Handle<String> name, |
SmallMapList* types); |
- void StoreReceiverTypes(Assignment* expr, |
+ void StoreReceiverTypes(TypeFeedbackId id, |
Handle<String> name, |
SmallMapList* types); |
- void CallReceiverTypes(Call* expr, |
+ void CallReceiverTypes(TypeFeedbackId id, |
Handle<String> name, |
+ int arity, |
CallKind call_kind, |
SmallMapList* types); |
- void CollectKeyedReceiverTypes(TypeFeedbackId ast_id, |
+ void CollectKeyedReceiverTypes(TypeFeedbackId id, |
SmallMapList* types); |
- void CollectPolymorphicStoreReceiverTypes(TypeFeedbackId ast_id, |
+ void CollectPolymorphicStoreReceiverTypes(TypeFeedbackId id, |
SmallMapList* types); |
void PropertyReceiverTypes(TypeFeedbackId id, |
@@ -287,6 +277,12 @@ class TypeFeedbackOracle: public ZoneObject { |
void KeyedPropertyReceiverTypes(TypeFeedbackId id, |
SmallMapList* receiver_types, |
bool* is_string); |
+ void AssignmentReceiverTypes(TypeFeedbackId id, |
+ Handle<String> name, |
+ SmallMapList* receiver_types); |
+ void KeyedAssignmentReceiverTypes(TypeFeedbackId id, |
+ SmallMapList* receiver_types, |
+ KeyedAccessStoreMode* store_mode); |
void CountReceiverTypes(TypeFeedbackId id, |
SmallMapList* receiver_types); |
@@ -296,12 +292,12 @@ class TypeFeedbackOracle: public ZoneObject { |
void CollectPolymorphicMaps(Handle<Code> code, SmallMapList* types); |
- CheckType GetCallCheckType(Call* expr); |
- Handle<JSFunction> GetCallTarget(Call* expr); |
- Handle<JSFunction> GetCallNewTarget(CallNew* expr); |
- Handle<Cell> GetCallNewAllocationInfoCell(CallNew* expr); |
+ CheckType GetCallCheckType(TypeFeedbackId id); |
+ Handle<JSFunction> GetCallTarget(TypeFeedbackId id); |
+ Handle<JSFunction> GetCallNewTarget(TypeFeedbackId id); |
+ Handle<Cell> GetCallNewAllocationInfoCell(TypeFeedbackId id); |
- Handle<Map> GetObjectLiteralStoreMap(ObjectLiteralProperty* prop); |
+ Handle<Map> GetObjectLiteralStoreMap(TypeFeedbackId id); |
bool LoadIsBuiltin(TypeFeedbackId id, Builtins::Name builtin_id); |
bool LoadIsStub(TypeFeedbackId id, ICStub* stub); |
@@ -332,12 +328,12 @@ class TypeFeedbackOracle: public ZoneObject { |
Isolate* isolate() const { return isolate_; } |
private: |
- void CollectReceiverTypes(TypeFeedbackId ast_id, |
+ void CollectReceiverTypes(TypeFeedbackId id, |
Handle<String> name, |
Code::Flags flags, |
SmallMapList* types); |
- void SetInfo(TypeFeedbackId ast_id, Object* target); |
+ void SetInfo(TypeFeedbackId id, Object* target); |
void BuildDictionary(Handle<Code> code); |
void GetRelocInfos(Handle<Code> code, ZoneList<RelocInfo>* infos); |
@@ -350,10 +346,10 @@ class TypeFeedbackOracle: public ZoneObject { |
// Returns an element from the backing store. Returns undefined if |
// there is no information. |
- Handle<Object> GetInfo(TypeFeedbackId ast_id); |
+ Handle<Object> GetInfo(TypeFeedbackId id); |
// Return the cell that contains type feedback. |
- Handle<Cell> GetInfoCell(TypeFeedbackId ast_id); |
+ Handle<Cell> GetInfoCell(TypeFeedbackId id); |
private: |
Handle<Context> native_context_; |