| Index: src/type-feedback-vector.h
|
| diff --git a/src/type-feedback-vector.h b/src/type-feedback-vector.h
|
| index b6fadba73ea0623ea62ee852f15eda9af3394207..18b1c1974b616501edaf349d1e2a91b60fb054ae 100644
|
| --- a/src/type-feedback-vector.h
|
| +++ b/src/type-feedback-vector.h
|
| @@ -49,6 +49,42 @@ class TypeFeedbackVector : public FixedArray {
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackVector);
|
| };
|
| +
|
| +// A FeedbackNode is the combination of a TypeFeedbackVector and a slot.
|
| +// Derived classes customize the update and retrieval of feedback.
|
| +class FeedbackNode {
|
| + public:
|
| + FeedbackNode(Handle<TypeFeedbackVector> vector, int slot)
|
| + : vector_(vector), slot_(slot) {}
|
| + virtual ~FeedbackNode() {}
|
| +
|
| + Handle<TypeFeedbackVector> vector() const { return vector_; }
|
| + int slot() const { return slot_; }
|
| +
|
| + private:
|
| + Handle<TypeFeedbackVector> vector_;
|
| + int slot_;
|
| +};
|
| +
|
| +
|
| +bool operator==(FeedbackNode const&, FeedbackNode const&);
|
| +bool operator!=(FeedbackNode const&, FeedbackNode const&);
|
| +
|
| +size_t hash_value(FeedbackNode const&);
|
| +
|
| +
|
| +class LoadICFeedbackNode : public FeedbackNode {
|
| + public:
|
| + LoadICFeedbackNode(Handle<TypeFeedbackVector> vector, int slot)
|
| + : FeedbackNode(vector, slot) {}
|
| +};
|
| +
|
| +
|
| +class KeyedLoadICFeedbackNode : public FeedbackNode {
|
| + public:
|
| + KeyedLoadICFeedbackNode(Handle<TypeFeedbackVector> vector, int slot)
|
| + : FeedbackNode(vector, slot) {}
|
| +};
|
| }
|
| } // namespace v8::internal
|
|
|
|
|