| Index: src/type-info.h
|
| diff --git a/src/type-info.h b/src/type-info.h
|
| index d6d958d56d2c4cf7588518cbad77af41ec52b431..6c7e31acdb6d071e433d9d37d377e79eaeb9dfd4 100644
|
| --- a/src/type-info.h
|
| +++ b/src/type-info.h
|
| @@ -29,7 +29,6 @@
|
| #define V8_TYPE_INFO_H_
|
|
|
| #include "allocation.h"
|
| -#include "ast.h"
|
| #include "globals.h"
|
| #include "zone-inl.h"
|
|
|
| @@ -232,6 +231,8 @@ class ICStub;
|
| class Property;
|
| class SmallMapList;
|
| class UnaryOperation;
|
| +class ObjectLiteral;
|
| +class ObjectLiteralProperty;
|
|
|
|
|
| class TypeFeedbackOracle: public ZoneObject {
|
| @@ -248,13 +249,15 @@ class TypeFeedbackOracle: public ZoneObject {
|
| bool StoreIsPolymorphic(TypeFeedbackId ast_id);
|
| bool CallIsMonomorphic(Call* expr);
|
| bool CallNewIsMonomorphic(CallNew* expr);
|
| - bool ObjectLiteralStoreIsMonomorphic(ObjectLiteral::Property* prop);
|
| + bool ObjectLiteralStoreIsMonomorphic(ObjectLiteralProperty* prop);
|
|
|
| - bool IsForInFastCase(ForInStatement* expr);
|
| + // TODO(1571) We can't use ForInStatement::ForInType as the return value due
|
| + // to various cycles in our headers.
|
| + byte ForInType(ForInStatement* expr);
|
|
|
| Handle<Map> LoadMonomorphicReceiverType(Property* expr);
|
| Handle<Map> StoreMonomorphicReceiverType(TypeFeedbackId id);
|
| - Handle<Map> CompareNilMonomorphicReceiverType(TypeFeedbackId id);
|
| + Handle<Map> CompareNilMonomorphicReceiverType(CompareOperation* expr);
|
|
|
| KeyedAccessStoreMode GetStoreMode(TypeFeedbackId ast_id);
|
|
|
| @@ -278,26 +281,24 @@ class TypeFeedbackOracle: public ZoneObject {
|
| void CollectPolymorphicMaps(Handle<Code> code, SmallMapList* types);
|
|
|
| CheckType GetCallCheckType(Call* expr);
|
| - Handle<JSObject> GetPrototypeForPrimitiveCheck(CheckType check);
|
| -
|
| Handle<JSFunction> GetCallTarget(Call* expr);
|
| Handle<JSFunction> GetCallNewTarget(CallNew* expr);
|
| ElementsKind GetCallNewElementsKind(CallNew* expr);
|
|
|
| - Handle<Map> GetObjectLiteralStoreMap(ObjectLiteral::Property* prop);
|
| + Handle<Map> GetObjectLiteralStoreMap(ObjectLiteralProperty* prop);
|
|
|
| bool LoadIsBuiltin(Property* expr, Builtins::Name id);
|
| bool LoadIsStub(Property* expr, ICStub* stub);
|
|
|
| // 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
|
| + // of various cycles in our headers. Death to tons of implementations in
|
| // headers!! :-P
|
| byte ToBooleanTypes(TypeFeedbackId ast_id);
|
|
|
| // TODO(1571) We can't use CompareNilICStub::Types as the return value because
|
| // of various cylces in our headers. Death to tons of implementations in
|
| // headers!! :-P
|
| - byte CompareNilTypes(TypeFeedbackId ast_id);
|
| + byte CompareNilTypes(CompareOperation* expr);
|
|
|
| // Get type information for arithmetic operations and compares.
|
| TypeInfo UnaryType(UnaryOperation* expr);
|
| @@ -314,6 +315,7 @@ class TypeFeedbackOracle: public ZoneObject {
|
| TypeInfo IncrementType(CountOperation* expr);
|
|
|
| Zone* zone() const { return zone_; }
|
| + Isolate* isolate() const { return isolate_; }
|
|
|
| private:
|
| void CollectReceiverTypes(TypeFeedbackId ast_id,
|
|
|