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

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

Issue 1015643002: Provide method for getting Isolate by v8::Message (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « src/api.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 3822 matching lines...) Expand 10 before | Expand all | Expand 10 after
3833 // clear out the message listener 3833 // clear out the message listener
3834 v8::V8::RemoveMessageListeners(check_message_0); 3834 v8::V8::RemoveMessageListeners(check_message_0);
3835 } 3835 }
3836 3836
3837 3837
3838 static void check_message_1(v8::Handle<v8::Message> message, 3838 static void check_message_1(v8::Handle<v8::Message> message,
3839 v8::Handle<Value> data) { 3839 v8::Handle<Value> data) {
3840 CHECK(data->IsNumber()); 3840 CHECK(data->IsNumber());
3841 CHECK_EQ(1337, data->Int32Value()); 3841 CHECK_EQ(1337, data->Int32Value());
3842 CHECK(!message->IsSharedCrossOrigin()); 3842 CHECK(!message->IsSharedCrossOrigin());
3843 CHECK_EQ(CcTest::isolate(), message->GetIsolate());
3843 message_received = true; 3844 message_received = true;
3844 } 3845 }
3845 3846
3846 3847
3847 TEST(MessageHandler1) { 3848 TEST(MessageHandler1) {
3848 message_received = false; 3849 message_received = false;
3849 v8::HandleScope scope(CcTest::isolate()); 3850 v8::HandleScope scope(CcTest::isolate());
3850 CHECK(!message_received); 3851 CHECK(!message_received);
3851 v8::V8::AddMessageListener(check_message_1); 3852 v8::V8::AddMessageListener(check_message_1);
3852 LocalContext context; 3853 LocalContext context;
3853 CompileRun("throw 1337;"); 3854 CompileRun("throw 1337;");
3854 CHECK(message_received); 3855 CHECK(message_received);
3855 // clear out the message listener 3856 // clear out the message listener
3856 v8::V8::RemoveMessageListeners(check_message_1); 3857 v8::V8::RemoveMessageListeners(check_message_1);
3857 } 3858 }
3858 3859
3859 3860
3860 static void check_message_2(v8::Handle<v8::Message> message, 3861 static void check_message_2(v8::Handle<v8::Message> message,
3861 v8::Handle<Value> data) { 3862 v8::Handle<Value> data) {
3862 LocalContext context; 3863 LocalContext context;
3863 CHECK(data->IsObject()); 3864 CHECK(data->IsObject());
3865 v8::Handle<v8::Object> data_obj = data.As<v8::Object>();
3866 CHECK(message->GetIsolate());
3867 CHECK_EQ(data_obj->GetIsolate(), message->GetIsolate());
3864 v8::Local<v8::Value> hidden_property = 3868 v8::Local<v8::Value> hidden_property =
3865 v8::Object::Cast(*data)->GetHiddenValue(v8_str("hidden key")); 3869 v8::Object::Cast(*data)->GetHiddenValue(v8_str("hidden key"));
3866 CHECK(v8_str("hidden value")->Equals(hidden_property)); 3870 CHECK(v8_str("hidden value")->Equals(hidden_property));
3867 CHECK(!message->IsSharedCrossOrigin()); 3871 CHECK(!message->IsSharedCrossOrigin());
3868 message_received = true; 3872 message_received = true;
3869 } 3873 }
3870 3874
3871 3875
3872 TEST(MessageHandler2) { 3876 TEST(MessageHandler2) {
3873 message_received = false; 3877 message_received = false;
(...skipping 12 matching lines...) Expand all
3886 } 3890 }
3887 3891
3888 3892
3889 static void check_message_3(v8::Handle<v8::Message> message, 3893 static void check_message_3(v8::Handle<v8::Message> message,
3890 v8::Handle<Value> data) { 3894 v8::Handle<Value> data) {
3891 CHECK(message->IsSharedCrossOrigin()); 3895 CHECK(message->IsSharedCrossOrigin());
3892 CHECK(message->GetScriptOrigin().ResourceIsSharedCrossOrigin()->Value()); 3896 CHECK(message->GetScriptOrigin().ResourceIsSharedCrossOrigin()->Value());
3893 CHECK(message->GetScriptOrigin().ResourceIsEmbedderDebugScript()->Value()); 3897 CHECK(message->GetScriptOrigin().ResourceIsEmbedderDebugScript()->Value());
3894 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue()); 3898 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue());
3895 CHECK_EQ(7.40, message->GetScriptOrigin().SourceMapUrl()->NumberValue()); 3899 CHECK_EQ(7.40, message->GetScriptOrigin().SourceMapUrl()->NumberValue());
3900 CHECK_EQ(CcTest::isolate(), message->GetIsolate());
3896 message_received = true; 3901 message_received = true;
3897 } 3902 }
3898 3903
3899 3904
3900 TEST(MessageHandler3) { 3905 TEST(MessageHandler3) {
3901 message_received = false; 3906 message_received = false;
3902 v8::Isolate* isolate = CcTest::isolate(); 3907 v8::Isolate* isolate = CcTest::isolate();
3903 v8::HandleScope scope(isolate); 3908 v8::HandleScope scope(isolate);
3904 CHECK(!message_received); 3909 CHECK(!message_received);
3905 v8::V8::AddMessageListener(check_message_3); 3910 v8::V8::AddMessageListener(check_message_3);
3906 LocalContext context; 3911 LocalContext context;
3907 v8::ScriptOrigin origin = v8::ScriptOrigin( 3912 v8::ScriptOrigin origin = v8::ScriptOrigin(
3908 v8_str("6.75"), v8::Integer::New(isolate, 1), 3913 v8_str("6.75"), v8::Integer::New(isolate, 1),
3909 v8::Integer::New(isolate, 2), v8::True(isolate), Handle<v8::Integer>(), 3914 v8::Integer::New(isolate, 2), v8::True(isolate), Handle<v8::Integer>(),
3910 v8::True(isolate), v8_str("7.40")); 3915 v8::True(isolate), v8_str("7.40"));
3911 v8::Handle<v8::Script> script = 3916 v8::Handle<v8::Script> script =
3912 Script::Compile(v8_str("throw 'error'"), &origin); 3917 Script::Compile(v8_str("throw 'error'"), &origin);
3913 script->Run(); 3918 script->Run();
3914 CHECK(message_received); 3919 CHECK(message_received);
3915 // clear out the message listener 3920 // clear out the message listener
3916 v8::V8::RemoveMessageListeners(check_message_3); 3921 v8::V8::RemoveMessageListeners(check_message_3);
3917 } 3922 }
3918 3923
3919 3924
3920 static void check_message_4(v8::Handle<v8::Message> message, 3925 static void check_message_4(v8::Handle<v8::Message> message,
3921 v8::Handle<Value> data) { 3926 v8::Handle<Value> data) {
3922 CHECK(!message->IsSharedCrossOrigin()); 3927 CHECK(!message->IsSharedCrossOrigin());
3923 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue()); 3928 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue());
3929 CHECK_EQ(CcTest::isolate(), message->GetIsolate());
3924 message_received = true; 3930 message_received = true;
3925 } 3931 }
3926 3932
3927 3933
3928 TEST(MessageHandler4) { 3934 TEST(MessageHandler4) {
3929 message_received = false; 3935 message_received = false;
3930 v8::Isolate* isolate = CcTest::isolate(); 3936 v8::Isolate* isolate = CcTest::isolate();
3931 v8::HandleScope scope(isolate); 3937 v8::HandleScope scope(isolate);
3932 CHECK(!message_received); 3938 CHECK(!message_received);
3933 v8::V8::AddMessageListener(check_message_4); 3939 v8::V8::AddMessageListener(check_message_4);
3934 LocalContext context; 3940 LocalContext context;
3935 v8::ScriptOrigin origin = 3941 v8::ScriptOrigin origin =
3936 v8::ScriptOrigin(v8_str("6.75"), v8::Integer::New(isolate, 1), 3942 v8::ScriptOrigin(v8_str("6.75"), v8::Integer::New(isolate, 1),
3937 v8::Integer::New(isolate, 2), v8::False(isolate)); 3943 v8::Integer::New(isolate, 2), v8::False(isolate));
3938 v8::Handle<v8::Script> script = 3944 v8::Handle<v8::Script> script =
3939 Script::Compile(v8_str("throw 'error'"), &origin); 3945 Script::Compile(v8_str("throw 'error'"), &origin);
3940 script->Run(); 3946 script->Run();
3941 CHECK(message_received); 3947 CHECK(message_received);
3942 // clear out the message listener 3948 // clear out the message listener
3943 v8::V8::RemoveMessageListeners(check_message_4); 3949 v8::V8::RemoveMessageListeners(check_message_4);
3944 } 3950 }
3945 3951
3946 3952
3947 static void check_message_5a(v8::Handle<v8::Message> message, 3953 static void check_message_5a(v8::Handle<v8::Message> message,
3948 v8::Handle<Value> data) { 3954 v8::Handle<Value> data) {
3949 CHECK(message->IsSharedCrossOrigin()); 3955 CHECK(message->IsSharedCrossOrigin());
3950 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue()); 3956 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue());
3957 CHECK_EQ(CcTest::isolate(), message->GetIsolate());
3951 message_received = true; 3958 message_received = true;
3952 } 3959 }
3953 3960
3954 3961
3955 static void check_message_5b(v8::Handle<v8::Message> message, 3962 static void check_message_5b(v8::Handle<v8::Message> message,
3956 v8::Handle<Value> data) { 3963 v8::Handle<Value> data) {
3957 CHECK(!message->IsSharedCrossOrigin()); 3964 CHECK(!message->IsSharedCrossOrigin());
3958 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue()); 3965 CHECK_EQ(6.75, message->GetScriptOrigin().ResourceName()->NumberValue());
3966 CHECK_EQ(CcTest::isolate(), message->GetIsolate());
3959 message_received = true; 3967 message_received = true;
3960 } 3968 }
3961 3969
3962 3970
3963 TEST(MessageHandler5) { 3971 TEST(MessageHandler5) {
3964 message_received = false; 3972 message_received = false;
3965 v8::Isolate* isolate = CcTest::isolate(); 3973 v8::Isolate* isolate = CcTest::isolate();
3966 v8::HandleScope scope(isolate); 3974 v8::HandleScope scope(isolate);
3967 CHECK(!message_received); 3975 CHECK(!message_received);
3968 v8::V8::AddMessageListener(check_message_5a); 3976 v8::V8::AddMessageListener(check_message_5a);
(...skipping 17671 matching lines...) Expand 10 before | Expand all | Expand 10 after
21640 } 21648 }
21641 { 21649 {
21642 v8::TryCatch try_catch; 21650 v8::TryCatch try_catch;
21643 uint16_t* data = reinterpret_cast<uint16_t*>(buffer); 21651 uint16_t* data = reinterpret_cast<uint16_t*>(buffer);
21644 CHECK(v8::String::NewFromTwoByte(isolate, data, v8::String::kNormalString, 21652 CHECK(v8::String::NewFromTwoByte(isolate, data, v8::String::kNormalString,
21645 length).IsEmpty()); 21653 length).IsEmpty());
21646 CHECK(try_catch.HasCaught()); 21654 CHECK(try_catch.HasCaught());
21647 } 21655 }
21648 free(buffer); 21656 free(buffer);
21649 } 21657 }
OLDNEW
« no previous file with comments | « src/api.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698