1// Copyright 2013 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#ifndef V8_EXTENSIONS_TRIGGER_FAILURE_EXTENSION_H_
6#define V8_EXTENSIONS_TRIGGER_FAILURE_EXTENSION_H_
7
8#include "include/v8-extension.h"
9
10namespace v8 {
11
12template <typename T>
13class FunctionCallbackInfo;
14
15namespace internal {
16
17class TriggerFailureExtension : public v8::Extension {
18 public:
19  TriggerFailureExtension() : v8::Extension("v8/trigger-failure", kSource) {}
20  v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate(
21      v8::Isolate* isolate, v8::Local<v8::String> name) override;
22  static void TriggerCheckFalse(
23      const v8::FunctionCallbackInfo<v8::Value>& args);
24  static void TriggerAssertFalse(
25      const v8::FunctionCallbackInfo<v8::Value>& args);
26  static void TriggerSlowAssertFalse(
27      const v8::FunctionCallbackInfo<v8::Value>& args);
28
29 private:
30  static const char* const kSource;
31};
32
33}  // namespace internal
34}  // namespace v8
35
36#endif  // V8_EXTENSIONS_TRIGGER_FAILURE_EXTENSION_H_
37