| 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_;
|
|
|