Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(627)

Side by Side Diff: test/cctest/test-api.cc

Issue 249313002: Remove static CallCompletedCallback handlers (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« src/isolate.cc ('K') | « src/v8.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 20630 matching lines...) Expand 10 before | Expand all | Expand 10 after
20641 20641
20642 20642
20643 TEST(CallCompletedCallback) { 20643 TEST(CallCompletedCallback) {
20644 LocalContext env; 20644 LocalContext env;
20645 v8::HandleScope scope(env->GetIsolate()); 20645 v8::HandleScope scope(env->GetIsolate());
20646 v8::Handle<v8::FunctionTemplate> recursive_runtime = 20646 v8::Handle<v8::FunctionTemplate> recursive_runtime =
20647 v8::FunctionTemplate::New(env->GetIsolate(), RecursiveCall); 20647 v8::FunctionTemplate::New(env->GetIsolate(), RecursiveCall);
20648 env->Global()->Set(v8_str("recursion"), 20648 env->Global()->Set(v8_str("recursion"),
20649 recursive_runtime->GetFunction()); 20649 recursive_runtime->GetFunction());
20650 // Adding the same callback a second time has no effect. 20650 // Adding the same callback a second time has no effect.
20651 v8::V8::AddCallCompletedCallback(CallCompletedCallback1); 20651 env->GetIsolate()->AddCallCompletedCallback(CallCompletedCallback1);
20652 v8::V8::AddCallCompletedCallback(CallCompletedCallback1); 20652 env->GetIsolate()->AddCallCompletedCallback(CallCompletedCallback1);
20653 v8::V8::AddCallCompletedCallback(CallCompletedCallback2); 20653 env->GetIsolate()->AddCallCompletedCallback(CallCompletedCallback2);
20654 i::OS::Print("--- Script (1) ---\n"); 20654 i::OS::Print("--- Script (1) ---\n");
20655 Local<Script> script = v8::Script::Compile( 20655 Local<Script> script = v8::Script::Compile(
20656 v8::String::NewFromUtf8(env->GetIsolate(), "recursion(0)")); 20656 v8::String::NewFromUtf8(env->GetIsolate(), "recursion(0)"));
20657 script->Run(); 20657 script->Run();
20658 CHECK_EQ(3, callback_fired); 20658 CHECK_EQ(3, callback_fired);
20659 20659
20660 i::OS::Print("\n--- Script (2) ---\n"); 20660 i::OS::Print("\n--- Script (2) ---\n");
20661 callback_fired = 0; 20661 callback_fired = 0;
20662 v8::V8::RemoveCallCompletedCallback(CallCompletedCallback1); 20662 env->GetIsolate()->RemoveCallCompletedCallback(CallCompletedCallback1);
20663 script->Run(); 20663 script->Run();
20664 CHECK_EQ(2, callback_fired); 20664 CHECK_EQ(2, callback_fired);
20665 20665
20666 i::OS::Print("\n--- Function ---\n"); 20666 i::OS::Print("\n--- Function ---\n");
20667 callback_fired = 0; 20667 callback_fired = 0;
20668 Local<Function> recursive_function = 20668 Local<Function> recursive_function =
20669 Local<Function>::Cast(env->Global()->Get(v8_str("recursion"))); 20669 Local<Function>::Cast(env->Global()->Get(v8_str("recursion")));
20670 v8::Handle<Value> args[] = { v8_num(0) }; 20670 v8::Handle<Value> args[] = { v8_num(0) };
20671 recursive_function->Call(env->Global(), 1, args); 20671 recursive_function->Call(env->Global(), 1, args);
20672 CHECK_EQ(2, callback_fired); 20672 CHECK_EQ(2, callback_fired);
20673 } 20673 }
20674 20674
20675 20675
20676 void CallCompletedCallbackNoException() { 20676 void CallCompletedCallbackNoException() {
20677 v8::HandleScope scope(CcTest::isolate()); 20677 v8::HandleScope scope(CcTest::isolate());
20678 CompileRun("1+1;"); 20678 CompileRun("1+1;");
20679 } 20679 }
20680 20680
20681 20681
20682 void CallCompletedCallbackException() { 20682 void CallCompletedCallbackException() {
20683 v8::HandleScope scope(CcTest::isolate()); 20683 v8::HandleScope scope(CcTest::isolate());
20684 CompileRun("throw 'second exception';"); 20684 CompileRun("throw 'second exception';");
20685 } 20685 }
20686 20686
20687 20687
20688 TEST(CallCompletedCallbackOneException) { 20688 TEST(CallCompletedCallbackOneException) {
20689 LocalContext env; 20689 LocalContext env;
20690 v8::HandleScope scope(env->GetIsolate()); 20690 v8::HandleScope scope(env->GetIsolate());
20691 v8::V8::AddCallCompletedCallback(CallCompletedCallbackNoException); 20691 env->GetIsolate()->AddCallCompletedCallback(CallCompletedCallbackNoException);
20692 CompileRun("throw 'exception';"); 20692 CompileRun("throw 'exception';");
20693 } 20693 }
20694 20694
20695 20695
20696 TEST(CallCompletedCallbackTwoExceptions) { 20696 TEST(CallCompletedCallbackTwoExceptions) {
20697 LocalContext env; 20697 LocalContext env;
20698 v8::HandleScope scope(env->GetIsolate()); 20698 v8::HandleScope scope(env->GetIsolate());
20699 v8::V8::AddCallCompletedCallback(CallCompletedCallbackException); 20699 env->GetIsolate()->AddCallCompletedCallback(CallCompletedCallbackException);
20700 CompileRun("throw 'first exception';"); 20700 CompileRun("throw 'first exception';");
20701 } 20701 }
20702 20702
20703 20703
20704 static void MicrotaskOne(const v8::FunctionCallbackInfo<Value>& info) { 20704 static void MicrotaskOne(const v8::FunctionCallbackInfo<Value>& info) {
20705 v8::HandleScope scope(info.GetIsolate()); 20705 v8::HandleScope scope(info.GetIsolate());
20706 CompileRun("ext1Calls++;"); 20706 CompileRun("ext1Calls++;");
20707 } 20707 }
20708 20708
20709 20709
(...skipping 1782 matching lines...) Expand 10 before | Expand all | Expand 10 after
22492 v8::internal::FLAG_stack_size = 150; 22492 v8::internal::FLAG_stack_size = 150;
22493 LocalContext current; 22493 LocalContext current;
22494 v8::Isolate* isolate = current->GetIsolate(); 22494 v8::Isolate* isolate = current->GetIsolate();
22495 v8::HandleScope scope(isolate); 22495 v8::HandleScope scope(isolate);
22496 V8::SetCaptureStackTraceForUncaughtExceptions( 22496 V8::SetCaptureStackTraceForUncaughtExceptions(
22497 true, 10, v8::StackTrace::kDetailed); 22497 true, 10, v8::StackTrace::kDetailed);
22498 v8::TryCatch try_catch; 22498 v8::TryCatch try_catch;
22499 CompileRun("(function f(x) { f(x+1); })(0)"); 22499 CompileRun("(function f(x) { f(x+1); })(0)");
22500 CHECK(try_catch.HasCaught()); 22500 CHECK(try_catch.HasCaught());
22501 } 22501 }
OLDNEW
« src/isolate.cc ('K') | « src/v8.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698