diff options
Diffstat (limited to 'src/3rdparty/v8/src/type-info.h')
-rw-r--r-- | src/3rdparty/v8/src/type-info.h | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/3rdparty/v8/src/type-info.h b/src/3rdparty/v8/src/type-info.h index d461331..00d88c2 100644 --- a/src/3rdparty/v8/src/type-info.h +++ b/src/3rdparty/v8/src/type-info.h @@ -232,17 +232,18 @@ class UnaryOperation; class ForInStatement; -class TypeFeedbackOracle BASE_EMBEDDED { +class TypeFeedbackOracle: public ZoneObject { public: TypeFeedbackOracle(Handle<Code> code, - Handle<Context> global_context, - Isolate* isolate); + Handle<Context> native_context, + Isolate* isolate, + Zone* zone); bool LoadIsMonomorphicNormal(Property* expr); bool LoadIsUninitialized(Property* expr); bool LoadIsMegamorphicWithTypeInfo(Property* expr); - bool StoreIsMonomorphicNormal(Expression* expr); - bool StoreIsMegamorphicWithTypeInfo(Expression* expr); + bool StoreIsMonomorphicNormal(TypeFeedbackId ast_id); + bool StoreIsMegamorphicWithTypeInfo(TypeFeedbackId ast_id); bool CallIsMonomorphic(Call* expr); bool CallNewIsMonomorphic(CallNew* expr); bool ObjectLiteralStoreIsMonomorphic(ObjectLiteral::Property* prop); @@ -250,7 +251,7 @@ class TypeFeedbackOracle BASE_EMBEDDED { bool IsForInFastCase(ForInStatement* expr); Handle<Map> LoadMonomorphicReceiverType(Property* expr); - Handle<Map> StoreMonomorphicReceiverType(Expression* expr); + Handle<Map> StoreMonomorphicReceiverType(TypeFeedbackId ast_id); void LoadReceiverTypes(Property* expr, Handle<String> name, @@ -262,12 +263,12 @@ class TypeFeedbackOracle BASE_EMBEDDED { Handle<String> name, CallKind call_kind, SmallMapList* types); - void CollectKeyedReceiverTypes(unsigned ast_id, + void CollectKeyedReceiverTypes(TypeFeedbackId ast_id, SmallMapList* types); - static bool CanRetainOtherContext(Map* map, Context* global_context); + static bool CanRetainOtherContext(Map* map, Context* native_context); static bool CanRetainOtherContext(JSFunction* function, - Context* global_context); + Context* native_context); CheckType GetCallCheckType(Call* expr); Handle<JSObject> GetPrototypeForPrimitiveCheck(CheckType check); @@ -282,7 +283,7 @@ class TypeFeedbackOracle BASE_EMBEDDED { // TODO(1571) We can't use ToBooleanStub::Types as the return value because // of various cylces in our headers. Death to tons of implementations in // headers!! :-P - byte ToBooleanTypes(unsigned ast_id); + byte ToBooleanTypes(TypeFeedbackId ast_id); // Get type information for arithmetic operations and compares. TypeInfo UnaryType(UnaryOperation* expr); @@ -293,13 +294,15 @@ class TypeFeedbackOracle BASE_EMBEDDED { TypeInfo SwitchType(CaseClause* clause); TypeInfo IncrementType(CountOperation* expr); + Zone* zone() const { return zone_; } + private: - void CollectReceiverTypes(unsigned ast_id, + void CollectReceiverTypes(TypeFeedbackId ast_id, Handle<String> name, Code::Flags flags, SmallMapList* types); - void SetInfo(unsigned ast_id, Object* target); + void SetInfo(TypeFeedbackId ast_id, Object* target); void BuildDictionary(Handle<Code> code); void GetRelocInfos(Handle<Code> code, ZoneList<RelocInfo>* infos); @@ -312,11 +315,12 @@ class TypeFeedbackOracle BASE_EMBEDDED { // Returns an element from the backing store. Returns undefined if // there is no information. - Handle<Object> GetInfo(unsigned ast_id); + Handle<Object> GetInfo(TypeFeedbackId ast_id); - Handle<Context> global_context_; + Handle<Context> native_context_; Isolate* isolate_; Handle<UnseededNumberDictionary> dictionary_; + Zone* zone_; DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle); }; |