Chromium Code Reviews| Index: test/cctest/test-feedback-vector.h |
| diff --git a/test/cctest/test-feedback-vector.h b/test/cctest/test-feedback-vector.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..52f92d12479bbfe3f8aa7f9176cf4695901350ad |
| --- /dev/null |
| +++ b/test/cctest/test-feedback-vector.h |
| @@ -0,0 +1,45 @@ |
| +// Copyright 2015 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef V8_TEST_FEEDBACK_VECTOR_H_ |
| +#define V8_TEST_FEEDBACK_VECTOR_H_ |
| + |
| +#include "src/objects.h" |
| + |
| + |
| +namespace v8 { |
| +namespace internal { |
| + |
| +// Helper class that allows to write tests in a slot size independent manner. |
| +// Use helper.slot(X) to get X'th slot identifier. |
| +class FeedbackVectorHelper { |
|
mvstanton
2015/10/01 10:24:31
I wonder if we might want this in /src/type-feedba
Igor Sheludko
2015/10/01 12:46:29
I think the production code must always use slots
|
| + public: |
| + explicit FeedbackVectorHelper(Handle<TypeFeedbackVector> vector) |
| + : vector_(vector) { |
| + int slot_count = vector->Slots(); |
| + slots_.reserve(slot_count); |
| + TypeFeedbackMetadataIterator iter(vector); |
| + while (iter.HasNext()) { |
| + FeedbackVectorSlot slot = iter.Next(); |
| + slots_.push_back(slot); |
| + } |
| + } |
| + |
| + Handle<TypeFeedbackVector> vector() { return vector_; } |
| + |
| + // Returns slot identifier by numerical index. |
| + FeedbackVectorSlot slot(int index) const { return slots_[index]; } |
| + |
| + // Returns the number of slots in the feedback vector. |
| + int slot_count() const { return static_cast<int>(slots_.size()); } |
| + |
| + private: |
| + Handle<TypeFeedbackVector> vector_; |
| + std::vector<FeedbackVectorSlot> slots_; |
| +}; |
| + |
| +} // namespace internal |
| +} // namespace v8 |
| + |
| +#endif |