// Copyright 2017 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. #include "src/vector-slot-pair.h" #include "src/feedback-vector.h" namespace v8 { namespace internal { VectorSlotPair::VectorSlotPair() {} int VectorSlotPair::index() const { return vector_.is_null() ? -1 : FeedbackVector::GetIndex(slot_); } bool operator==(VectorSlotPair const& lhs, VectorSlotPair const& rhs) { return lhs.slot() == rhs.slot() && lhs.vector().location() == rhs.vector().location(); } bool operator!=(VectorSlotPair const& lhs, VectorSlotPair const& rhs) { return !(lhs == rhs); } std::ostream& operator<<(std::ostream& os, const VectorSlotPair& pair) { if (pair.IsValid()) { return os << "VectorSlotPair(" << pair.slot() << ")"; } return os << "VectorSlotPair(INVALID)"; } size_t hash_value(VectorSlotPair const& p) { return base::hash_combine(p.slot(), p.vector().location()); } } // namespace internal } // namespace v8