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 11namespace v8 { 12namespace internal { 13 14 15const char* const TriggerFailureExtension::kSource = 16 "native function triggerCheckFalse();" 17 "native function triggerAssertFalse();" 18 "native function triggerSlowAssertFalse();"; 19 20 21v8::Local<v8::FunctionTemplate> 22TriggerFailureExtension::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 43void TriggerFailureExtension::TriggerCheckFalse( 44 const v8::FunctionCallbackInfo<v8::Value>& args) { 45 CHECK(false); 46} 47 48 49void TriggerFailureExtension::TriggerAssertFalse( 50 const v8::FunctionCallbackInfo<v8::Value>& args) { 51 DCHECK(false); 52} 53 54 55void TriggerFailureExtension::TriggerSlowAssertFalse( 56 const v8::FunctionCallbackInfo<v8::Value>& args) { 57 SLOW_DCHECK(false); 58} 59 60} // namespace internal 61} // namespace v8 62