| Index: src/type-info.h
|
| diff --git a/src/type-info.h b/src/type-info.h
|
| index 8661d5057be8346a4b2ce7aa1964aede6382e34d..6de92cec0e94c22c52009d2994498638e304d0b7 100644
|
| --- a/src/type-info.h
|
| +++ b/src/type-info.h
|
| @@ -50,14 +50,16 @@ class TypeFeedbackOracle: public ZoneObject {
|
| bool LoadIsUninitialized(TypeFeedbackId id);
|
| bool StoreIsUninitialized(TypeFeedbackId id);
|
| bool StoreIsKeyedPolymorphic(TypeFeedbackId id);
|
| + bool CallIsMonomorphic(int slot);
|
| bool CallIsMonomorphic(TypeFeedbackId aid);
|
| - bool CallNewIsMonomorphic(TypeFeedbackId id);
|
| + bool KeyedArrayCallIsHoley(TypeFeedbackId id);
|
| + bool CallNewIsMonomorphic(int slot);
|
|
|
| // TODO(1571) We can't use ForInStatement::ForInType as the return value due
|
| // to various cycles in our headers.
|
| // TODO(rossberg): once all oracle access is removed from ast.cc, it should
|
| // be possible.
|
| - byte ForInType(TypeFeedbackId id);
|
| + byte ForInType(int feedback_vector_slot);
|
|
|
| KeyedAccessStoreMode GetStoreMode(TypeFeedbackId id);
|
|
|
| @@ -84,9 +86,9 @@ class TypeFeedbackOracle: public ZoneObject {
|
| static bool CanRetainOtherContext(JSFunction* function,
|
| Context* native_context);
|
|
|
| - Handle<JSFunction> GetCallTarget(TypeFeedbackId id);
|
| - Handle<JSFunction> GetCallNewTarget(TypeFeedbackId id);
|
| - Handle<AllocationSite> GetCallNewAllocationSite(TypeFeedbackId id);
|
| + Handle<JSFunction> GetCallTarget(int slot);
|
| + Handle<JSFunction> GetCallNewTarget(int slot);
|
| + Handle<AllocationSite> GetCallNewAllocationSite(int slot);
|
|
|
| bool LoadIsBuiltin(TypeFeedbackId id, Builtins::Name builtin_id);
|
| bool LoadIsStub(TypeFeedbackId id, ICStub* stub);
|
| @@ -130,16 +132,20 @@ class TypeFeedbackOracle: public ZoneObject {
|
| byte* old_start,
|
| byte* new_start);
|
| void ProcessRelocInfos(ZoneList<RelocInfo>* infos);
|
| - void ProcessTypeFeedbackCells(Handle<Code> code);
|
|
|
| // Returns an element from the backing store. Returns undefined if
|
| // there is no information.
|
| Handle<Object> GetInfo(TypeFeedbackId id);
|
|
|
| + // Returns an element from the type feedback vector. Returns undefined
|
| + // if there is no information.
|
| + Handle<Object> GetInfo(int slot);
|
| +
|
| private:
|
| Handle<Context> native_context_;
|
| Zone* zone_;
|
| Handle<UnseededNumberDictionary> dictionary_;
|
| + Handle<FixedArray> feedback_vector_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle);
|
| };
|
|
|