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