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, |