1afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org// Copyright 2013 the V8 project authors. All rights reserved. 23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be 33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file. 4afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 5196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/extensions/trigger-failure-extension.h" 6196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/v8.h" 7afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 8afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgnamespace v8 { 9afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgnamespace internal { 10afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 11afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 12afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgconst char* const TriggerFailureExtension::kSource = 13afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org "native function triggerCheckFalse();" 14afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org "native function triggerAssertFalse();" 15afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org "native function triggerSlowAssertFalse();"; 16afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 17afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 18afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgv8::Handle<v8::FunctionTemplate> 19afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgTriggerFailureExtension::GetNativeFunctionTemplate( 20afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org v8::Isolate* isolate, 21afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org v8::Handle<v8::String> str) { 22afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org if (strcmp(*v8::String::Utf8Value(str), "triggerCheckFalse") == 0) { 23afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org return v8::FunctionTemplate::New( 244f99be9ff2091451687891a05d99cc31990de709hpayer@chromium.org isolate, 25afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org TriggerFailureExtension::TriggerCheckFalse); 26afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org } else if (strcmp(*v8::String::Utf8Value(str), "triggerAssertFalse") == 0) { 27afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org return v8::FunctionTemplate::New( 284f99be9ff2091451687891a05d99cc31990de709hpayer@chromium.org isolate, 29afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org TriggerFailureExtension::TriggerAssertFalse); 30afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org } else { 31afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org CHECK_EQ(0, strcmp(*v8::String::Utf8Value(str), "triggerSlowAssertFalse")); 32afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org return v8::FunctionTemplate::New( 334f99be9ff2091451687891a05d99cc31990de709hpayer@chromium.org isolate, 34afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org TriggerFailureExtension::TriggerSlowAssertFalse); 35afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org } 36afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org} 37afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 38afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 39afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgvoid TriggerFailureExtension::TriggerCheckFalse( 40afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org const v8::FunctionCallbackInfo<v8::Value>& args) { 41afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org CHECK(false); 42afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org} 43afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 44afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 45afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgvoid TriggerFailureExtension::TriggerAssertFalse( 46afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org const v8::FunctionCallbackInfo<v8::Value>& args) { 47e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org DCHECK(false); 48afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org} 49afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 50afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 51afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.orgvoid TriggerFailureExtension::TriggerSlowAssertFalse( 52afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org const v8::FunctionCallbackInfo<v8::Value>& args) { 53e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org SLOW_DCHECK(false); 54afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org} 55afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org 56afbdadc5f06365a7889e7c1c1fdb7dbf596cce68machenbach@chromium.org} } // namespace v8::internal 57