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