// Copyright 2016 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/deoptimize-reason.h"namespacev8{namespaceinternal{std::ostream&operator<<(std::ostream&os,DeoptimizeReasonreason){switch(reason){#define DEOPTIMIZE_REASON(Name, message) \ case DeoptimizeReason::k##Name: \ return os << #Name;DEOPTIMIZE_REASON_LIST(DEOPTIMIZE_REASON)#undef DEOPTIMIZE_REASON}UNREACHABLE();returnos;}size_thash_value(DeoptimizeReasonreason){returnstatic_cast<uint8_t>(reason);}charconst*constDeoptimizeReasonToString(DeoptimizeReasonreason){staticcharconst*kDeoptimizeReasonStrings[]={#define DEOPTIMIZE_REASON(Name, message) message,DEOPTIMIZE_REASON_LIST(DEOPTIMIZE_REASON)#undef DEOPTIMIZE_REASON};size_tconstindex=static_cast<size_t>(reason);DCHECK_LT(index,arraysize(kDeoptimizeReasonStrings));returnkDeoptimizeReasonStrings[index];}}// namespace internal}// namespace v8