blob: 9aa8c2dcfe4a5a94ab0082a8b27e1ea3ced8a9bc [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// 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#include "src/extensions/trigger-failure-extension.h"
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00006
7#include "src/base/logging.h"
8#include "src/checks.h"
Ben Murdochb8a8cc12014-11-26 15:28:44 +00009
10namespace v8 {
11namespace internal {
12
13
14const char* const TriggerFailureExtension::kSource =
15 "native function triggerCheckFalse();"
16 "native function triggerAssertFalse();"
17 "native function triggerSlowAssertFalse();";
18
19
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000020v8::Local<v8::FunctionTemplate>
21TriggerFailureExtension::GetNativeFunctionTemplate(v8::Isolate* isolate,
22 v8::Local<v8::String> str) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +000023 if (strcmp(*v8::String::Utf8Value(str), "triggerCheckFalse") == 0) {
24 return v8::FunctionTemplate::New(
25 isolate,
26 TriggerFailureExtension::TriggerCheckFalse);
27 } else if (strcmp(*v8::String::Utf8Value(str), "triggerAssertFalse") == 0) {
28 return v8::FunctionTemplate::New(
29 isolate,
30 TriggerFailureExtension::TriggerAssertFalse);
31 } else {
32 CHECK_EQ(0, strcmp(*v8::String::Utf8Value(str), "triggerSlowAssertFalse"));
33 return v8::FunctionTemplate::New(
34 isolate,
35 TriggerFailureExtension::TriggerSlowAssertFalse);
36 }
37}
38
39
40void TriggerFailureExtension::TriggerCheckFalse(
41 const v8::FunctionCallbackInfo<v8::Value>& args) {
42 CHECK(false);
43}
44
45
46void TriggerFailureExtension::TriggerAssertFalse(
47 const v8::FunctionCallbackInfo<v8::Value>& args) {
48 DCHECK(false);
49}
50
51
52void TriggerFailureExtension::TriggerSlowAssertFalse(
53 const v8::FunctionCallbackInfo<v8::Value>& args) {
54 SLOW_DCHECK(false);
55}
56
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000057} // namespace internal
58} // namespace v8