| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |