summaryrefslogtreecommitdiff
path: root/deps/v8/src/bailout-reason.cc
blob: 54b3dbda54446aefafd1027ac14e178aa6f1ac88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright 2014 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/bailout-reason.h"
#include "src/base/logging.h"

namespace v8 {
namespace internal {

#define ERROR_MESSAGES_TEXTS(C, T) T,

const char* GetBailoutReason(BailoutReason reason) {
  DCHECK_LT(reason, BailoutReason::kLastErrorMessage);
  DCHECK_GE(reason, BailoutReason::kNoReason);
  static const char* error_messages_[] = {
      BAILOUT_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)};
  return error_messages_[static_cast<int>(reason)];
}

const char* GetAbortReason(AbortReason reason) {
  DCHECK_LT(reason, AbortReason::kLastErrorMessage);
  DCHECK_GE(reason, AbortReason::kNoReason);
  static const char* error_messages_[] = {
      ABORT_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)};
  return error_messages_[static_cast<int>(reason)];
}

bool IsValidAbortReason(int reason_id) {
  return reason_id >= static_cast<int>(AbortReason::kNoReason) &&
         reason_id < static_cast<int>(AbortReason::kLastErrorMessage);
}

#undef ERROR_MESSAGES_TEXTS
}  // namespace internal
}  // namespace v8