1// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "src/bailout-reason.h"
6#include "src/base/logging.h"
7
8namespace v8 {
9namespace internal {
10
11#define ERROR_MESSAGES_TEXTS(C, T) T,
12
13const char* GetBailoutReason(BailoutReason reason) {
14 DCHECK_LT(reason, BailoutReason::kLastErrorMessage);
15 DCHECK_GE(reason, BailoutReason::kNoReason);
16 static const char* error_messages_[] = {
17 BAILOUT_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)};
18 return error_messages_[static_cast<int>(reason)];
19}
20
21const char* GetAbortReason(AbortReason reason) {
22 DCHECK_LT(reason, AbortReason::kLastErrorMessage);
23 DCHECK_GE(reason, AbortReason::kNoReason);
24 static const char* error_messages_[] = {
25 ABORT_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)};
26 return error_messages_[static_cast<int>(reason)];
27}
28
29bool IsValidAbortReason(int reason_id) {
30 return reason_id >= static_cast<int>(AbortReason::kNoReason) &&
31 reason_id < static_cast<int>(AbortReason::kLastErrorMessage);
32}
33
34#undef ERROR_MESSAGES_TEXTS
35} // namespace internal
36} // namespace v8
37