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

Side by Side Diff: test/cctest/test-cpu-profiler.cc

Issue 108063003: Removed internal uses of (almost) deprecated FunctionTemplate::New version. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased. Created 7 years 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
« no previous file with comments | « test/cctest/test-compiler.cc ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 bool is_warming_up_; 709 bool is_warming_up_;
710 }; 710 };
711 711
712 712
713 // Test that native accessors are properly reported in the CPU profile. 713 // Test that native accessors are properly reported in the CPU profile.
714 // This test checks the case when the long-running accessors are called 714 // This test checks the case when the long-running accessors are called
715 // only once and the optimizer doesn't have chance to change the invocation 715 // only once and the optimizer doesn't have chance to change the invocation
716 // code. 716 // code.
717 TEST(NativeAccessorUninitializedIC) { 717 TEST(NativeAccessorUninitializedIC) {
718 LocalContext env; 718 LocalContext env;
719 v8::HandleScope scope(env->GetIsolate()); 719 v8::Isolate* isolate = env->GetIsolate();
720 v8::HandleScope scope(isolate);
720 721
721 722 v8::Local<v8::FunctionTemplate> func_template =
722 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(); 723 v8::FunctionTemplate::New(isolate);
723 v8::Local<v8::ObjectTemplate> instance_template = 724 v8::Local<v8::ObjectTemplate> instance_template =
724 func_template->InstanceTemplate(); 725 func_template->InstanceTemplate();
725 726
726 TestApiCallbacks accessors(100); 727 TestApiCallbacks accessors(100);
727 v8::Local<v8::External> data = 728 v8::Local<v8::External> data =
728 v8::External::New(env->GetIsolate(), &accessors); 729 v8::External::New(isolate, &accessors);
729 instance_template->SetAccessor( 730 instance_template->SetAccessor(
730 v8::String::NewFromUtf8(env->GetIsolate(), "foo"), 731 v8::String::NewFromUtf8(isolate, "foo"),
731 &TestApiCallbacks::Getter, &TestApiCallbacks::Setter, data); 732 &TestApiCallbacks::Getter, &TestApiCallbacks::Setter, data);
732 v8::Local<v8::Function> func = func_template->GetFunction(); 733 v8::Local<v8::Function> func = func_template->GetFunction();
733 v8::Local<v8::Object> instance = func->NewInstance(); 734 v8::Local<v8::Object> instance = func->NewInstance();
734 env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "instance"), 735 env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
735 instance); 736 instance);
736 737
737 v8::Script::Compile( 738 v8::Script::Compile(
738 v8::String::NewFromUtf8(env->GetIsolate(), native_accessor_test_source)) 739 v8::String::NewFromUtf8(isolate, native_accessor_test_source))
739 ->Run(); 740 ->Run();
740 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 741 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
741 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 742 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
742 743
743 int32_t repeat_count = 1; 744 int32_t repeat_count = 1;
744 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) }; 745 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) };
745 const v8::CpuProfile* profile = 746 const v8::CpuProfile* profile =
746 RunProfiler(env, function, args, ARRAY_SIZE(args), 180); 747 RunProfiler(env, function, args, ARRAY_SIZE(args), 180);
747 748
748 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 749 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
749 const v8::CpuProfileNode* startNode = 750 const v8::CpuProfileNode* startNode =
750 GetChild(env->GetIsolate(), root, "start"); 751 GetChild(isolate, root, "start");
751 GetChild(env->GetIsolate(), startNode, "get foo"); 752 GetChild(isolate, startNode, "get foo");
752 GetChild(env->GetIsolate(), startNode, "set foo"); 753 GetChild(isolate, startNode, "set foo");
753 754
754 const_cast<v8::CpuProfile*>(profile)->Delete(); 755 const_cast<v8::CpuProfile*>(profile)->Delete();
755 } 756 }
756 757
757 758
758 // Test that native accessors are properly reported in the CPU profile. 759 // Test that native accessors are properly reported in the CPU profile.
759 // This test makes sure that the accessors are called enough times to become 760 // This test makes sure that the accessors are called enough times to become
760 // hot and to trigger optimizations. 761 // hot and to trigger optimizations.
761 TEST(NativeAccessorMonomorphicIC) { 762 TEST(NativeAccessorMonomorphicIC) {
762 LocalContext env; 763 LocalContext env;
763 v8::HandleScope scope(env->GetIsolate()); 764 v8::Isolate* isolate = env->GetIsolate();
765 v8::HandleScope scope(isolate);
764 766
765 767 v8::Local<v8::FunctionTemplate> func_template =
766 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(); 768 v8::FunctionTemplate::New(isolate);
767 v8::Local<v8::ObjectTemplate> instance_template = 769 v8::Local<v8::ObjectTemplate> instance_template =
768 func_template->InstanceTemplate(); 770 func_template->InstanceTemplate();
769 771
770 TestApiCallbacks accessors(1); 772 TestApiCallbacks accessors(1);
771 v8::Local<v8::External> data = 773 v8::Local<v8::External> data =
772 v8::External::New(env->GetIsolate(), &accessors); 774 v8::External::New(isolate, &accessors);
773 instance_template->SetAccessor( 775 instance_template->SetAccessor(
774 v8::String::NewFromUtf8(env->GetIsolate(), "foo"), 776 v8::String::NewFromUtf8(isolate, "foo"),
775 &TestApiCallbacks::Getter, &TestApiCallbacks::Setter, data); 777 &TestApiCallbacks::Getter, &TestApiCallbacks::Setter, data);
776 v8::Local<v8::Function> func = func_template->GetFunction(); 778 v8::Local<v8::Function> func = func_template->GetFunction();
777 v8::Local<v8::Object> instance = func->NewInstance(); 779 v8::Local<v8::Object> instance = func->NewInstance();
778 env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "instance"), 780 env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
779 instance); 781 instance);
780 782
781 v8::Script::Compile( 783 v8::Script::Compile(
782 v8::String::NewFromUtf8(env->GetIsolate(), native_accessor_test_source)) 784 v8::String::NewFromUtf8(isolate, native_accessor_test_source))
783 ->Run(); 785 ->Run();
784 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 786 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
785 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 787 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
786 788
787 { 789 {
788 // Make sure accessors ICs are in monomorphic state before starting 790 // Make sure accessors ICs are in monomorphic state before starting
789 // profiling. 791 // profiling.
790 accessors.set_warming_up(true); 792 accessors.set_warming_up(true);
791 int32_t warm_up_iterations = 3; 793 int32_t warm_up_iterations = 3;
792 v8::Handle<v8::Value> args[] = { v8::Integer::New(warm_up_iterations) }; 794 v8::Handle<v8::Value> args[] = { v8::Integer::New(warm_up_iterations) };
793 function->Call(env->Global(), ARRAY_SIZE(args), args); 795 function->Call(env->Global(), ARRAY_SIZE(args), args);
794 accessors.set_warming_up(false); 796 accessors.set_warming_up(false);
795 } 797 }
796 798
797 int32_t repeat_count = 100; 799 int32_t repeat_count = 100;
798 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) }; 800 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) };
799 const v8::CpuProfile* profile = 801 const v8::CpuProfile* profile =
800 RunProfiler(env, function, args, ARRAY_SIZE(args), 200); 802 RunProfiler(env, function, args, ARRAY_SIZE(args), 200);
801 803
802 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 804 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
803 const v8::CpuProfileNode* startNode = 805 const v8::CpuProfileNode* startNode =
804 GetChild(env->GetIsolate(), root, "start"); 806 GetChild(isolate, root, "start");
805 GetChild(env->GetIsolate(), startNode, "get foo"); 807 GetChild(isolate, startNode, "get foo");
806 GetChild(env->GetIsolate(), startNode, "set foo"); 808 GetChild(isolate, startNode, "set foo");
807 809
808 const_cast<v8::CpuProfile*>(profile)->Delete(); 810 const_cast<v8::CpuProfile*>(profile)->Delete();
809 } 811 }
810 812
811 813
812 static const char* native_method_test_source = "function start(count) {\n" 814 static const char* native_method_test_source = "function start(count) {\n"
813 " for (var i = 0; i < count; i++) {\n" 815 " for (var i = 0; i < count; i++) {\n"
814 " instance.fooMethod();\n" 816 " instance.fooMethod();\n"
815 " }\n" 817 " }\n"
816 "}\n"; 818 "}\n";
817 819
818 820
819 TEST(NativeMethodUninitializedIC) { 821 TEST(NativeMethodUninitializedIC) {
820 LocalContext env; 822 LocalContext env;
821 v8::HandleScope scope(env->GetIsolate()); 823 v8::Isolate* isolate = env->GetIsolate();
824 v8::HandleScope scope(isolate);
822 825
823 TestApiCallbacks callbacks(100); 826 TestApiCallbacks callbacks(100);
824 v8::Local<v8::External> data = 827 v8::Local<v8::External> data =
825 v8::External::New(env->GetIsolate(), &callbacks); 828 v8::External::New(isolate, &callbacks);
826 829
827 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(); 830 v8::Local<v8::FunctionTemplate> func_template =
831 v8::FunctionTemplate::New(isolate);
828 func_template->SetClassName( 832 func_template->SetClassName(
829 v8::String::NewFromUtf8(env->GetIsolate(), "Test_InstanceCostructor")); 833 v8::String::NewFromUtf8(isolate, "Test_InstanceCostructor"));
830 v8::Local<v8::ObjectTemplate> proto_template = 834 v8::Local<v8::ObjectTemplate> proto_template =
831 func_template->PrototypeTemplate(); 835 func_template->PrototypeTemplate();
832 v8::Local<v8::Signature> signature = 836 v8::Local<v8::Signature> signature =
833 v8::Signature::New(env->GetIsolate(), func_template); 837 v8::Signature::New(isolate, func_template);
834 proto_template->Set(v8::String::NewFromUtf8(env->GetIsolate(), "fooMethod"), 838 proto_template->Set(v8::String::NewFromUtf8(isolate, "fooMethod"),
835 v8::FunctionTemplate::New(&TestApiCallbacks::Callback, 839 v8::FunctionTemplate::New(isolate,
840 &TestApiCallbacks::Callback,
836 data, signature, 0)); 841 data, signature, 0));
837 842
838 v8::Local<v8::Function> func = func_template->GetFunction(); 843 v8::Local<v8::Function> func = func_template->GetFunction();
839 v8::Local<v8::Object> instance = func->NewInstance(); 844 v8::Local<v8::Object> instance = func->NewInstance();
840 env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "instance"), 845 env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
841 instance); 846 instance);
842 847
843 v8::Script::Compile(v8::String::NewFromUtf8( 848 v8::Script::Compile(v8::String::NewFromUtf8(
844 env->GetIsolate(), native_method_test_source))->Run(); 849 isolate, native_method_test_source))->Run();
845 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 850 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
846 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 851 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
847 852
848 int32_t repeat_count = 1; 853 int32_t repeat_count = 1;
849 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) }; 854 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) };
850 const v8::CpuProfile* profile = 855 const v8::CpuProfile* profile =
851 RunProfiler(env, function, args, ARRAY_SIZE(args), 100); 856 RunProfiler(env, function, args, ARRAY_SIZE(args), 100);
852 857
853 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 858 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
854 const v8::CpuProfileNode* startNode = 859 const v8::CpuProfileNode* startNode =
855 GetChild(env->GetIsolate(), root, "start"); 860 GetChild(isolate, root, "start");
856 GetChild(env->GetIsolate(), startNode, "fooMethod"); 861 GetChild(isolate, startNode, "fooMethod");
857 862
858 const_cast<v8::CpuProfile*>(profile)->Delete(); 863 const_cast<v8::CpuProfile*>(profile)->Delete();
859 } 864 }
860 865
861 866
862 TEST(NativeMethodMonomorphicIC) { 867 TEST(NativeMethodMonomorphicIC) {
863 LocalContext env; 868 LocalContext env;
864 v8::HandleScope scope(env->GetIsolate()); 869 v8::Isolate* isolate = env->GetIsolate();
870 v8::HandleScope scope(isolate);
865 871
866 TestApiCallbacks callbacks(1); 872 TestApiCallbacks callbacks(1);
867 v8::Local<v8::External> data = 873 v8::Local<v8::External> data =
868 v8::External::New(env->GetIsolate(), &callbacks); 874 v8::External::New(isolate, &callbacks);
869 875
870 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(); 876 v8::Local<v8::FunctionTemplate> func_template =
877 v8::FunctionTemplate::New(isolate);
871 func_template->SetClassName( 878 func_template->SetClassName(
872 v8::String::NewFromUtf8(env->GetIsolate(), "Test_InstanceCostructor")); 879 v8::String::NewFromUtf8(isolate, "Test_InstanceCostructor"));
873 v8::Local<v8::ObjectTemplate> proto_template = 880 v8::Local<v8::ObjectTemplate> proto_template =
874 func_template->PrototypeTemplate(); 881 func_template->PrototypeTemplate();
875 v8::Local<v8::Signature> signature = 882 v8::Local<v8::Signature> signature =
876 v8::Signature::New(env->GetIsolate(), func_template); 883 v8::Signature::New(isolate, func_template);
877 proto_template->Set(v8::String::NewFromUtf8(env->GetIsolate(), "fooMethod"), 884 proto_template->Set(v8::String::NewFromUtf8(isolate, "fooMethod"),
878 v8::FunctionTemplate::New(&TestApiCallbacks::Callback, 885 v8::FunctionTemplate::New(isolate,
886 &TestApiCallbacks::Callback,
879 data, signature, 0)); 887 data, signature, 0));
880 888
881 v8::Local<v8::Function> func = func_template->GetFunction(); 889 v8::Local<v8::Function> func = func_template->GetFunction();
882 v8::Local<v8::Object> instance = func->NewInstance(); 890 v8::Local<v8::Object> instance = func->NewInstance();
883 env->Global()->Set(v8::String::NewFromUtf8(env->GetIsolate(), "instance"), 891 env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
884 instance); 892 instance);
885 893
886 v8::Script::Compile(v8::String::NewFromUtf8( 894 v8::Script::Compile(v8::String::NewFromUtf8(
887 env->GetIsolate(), native_method_test_source))->Run(); 895 isolate, native_method_test_source))->Run();
888 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 896 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
889 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 897 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
890 { 898 {
891 // Make sure method ICs are in monomorphic state before starting 899 // Make sure method ICs are in monomorphic state before starting
892 // profiling. 900 // profiling.
893 callbacks.set_warming_up(true); 901 callbacks.set_warming_up(true);
894 int32_t warm_up_iterations = 3; 902 int32_t warm_up_iterations = 3;
895 v8::Handle<v8::Value> args[] = { v8::Integer::New(warm_up_iterations) }; 903 v8::Handle<v8::Value> args[] = { v8::Integer::New(warm_up_iterations) };
896 function->Call(env->Global(), ARRAY_SIZE(args), args); 904 function->Call(env->Global(), ARRAY_SIZE(args), args);
897 callbacks.set_warming_up(false); 905 callbacks.set_warming_up(false);
898 } 906 }
899 907
900 int32_t repeat_count = 100; 908 int32_t repeat_count = 100;
901 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) }; 909 v8::Handle<v8::Value> args[] = { v8::Integer::New(repeat_count) };
902 const v8::CpuProfile* profile = 910 const v8::CpuProfile* profile =
903 RunProfiler(env, function, args, ARRAY_SIZE(args), 100); 911 RunProfiler(env, function, args, ARRAY_SIZE(args), 100);
904 912
905 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 913 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
906 GetChild(env->GetIsolate(), root, "start"); 914 GetChild(isolate, root, "start");
907 const v8::CpuProfileNode* startNode = 915 const v8::CpuProfileNode* startNode =
908 GetChild(env->GetIsolate(), root, "start"); 916 GetChild(isolate, root, "start");
909 GetChild(env->GetIsolate(), startNode, "fooMethod"); 917 GetChild(isolate, startNode, "fooMethod");
910 918
911 const_cast<v8::CpuProfile*>(profile)->Delete(); 919 const_cast<v8::CpuProfile*>(profile)->Delete();
912 } 920 }
913 921
914 922
915 static const char* bound_function_test_source = "function foo(iterations) {\n" 923 static const char* bound_function_test_source = "function foo(iterations) {\n"
916 " var r = 0;\n" 924 " var r = 0;\n"
917 " for (var i = 0; i < iterations; i++) { r += i; }\n" 925 " for (var i = 0; i < iterations; i++) { r += i; }\n"
918 " return r;\n" 926 " return r;\n"
919 "}\n" 927 "}\n"
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 // 55 0 CallJsFunction #0 4 1172 // 55 0 CallJsFunction #0 4
1165 // 55 1 bar #16 5 1173 // 55 1 bar #16 5
1166 // 54 54 foo #16 6 1174 // 54 54 foo #16 6
1167 TEST(JsNativeJsSample) { 1175 TEST(JsNativeJsSample) {
1168 const char* extensions[] = { "v8/profiler" }; 1176 const char* extensions[] = { "v8/profiler" };
1169 v8::ExtensionConfiguration config(1, extensions); 1177 v8::ExtensionConfiguration config(1, extensions);
1170 LocalContext env(&config); 1178 LocalContext env(&config);
1171 v8::HandleScope scope(env->GetIsolate()); 1179 v8::HandleScope scope(env->GetIsolate());
1172 1180
1173 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( 1181 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(
1174 CallJsFunction); 1182 env->GetIsolate(), CallJsFunction);
1175 v8::Local<v8::Function> func = func_template->GetFunction(); 1183 v8::Local<v8::Function> func = func_template->GetFunction();
1176 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction")); 1184 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"));
1177 env->Global()->Set( 1185 env->Global()->Set(
1178 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func); 1186 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func);
1179 1187
1180 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), 1188 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
1181 js_native_js_test_source))->Run(); 1189 js_native_js_test_source))->Run();
1182 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 1190 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
1183 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 1191 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
1184 1192
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 // 54 3 bar #16 5 1255 // 54 3 bar #16 5
1248 // 51 51 foo #16 6 1256 // 51 51 foo #16 6
1249 // 2 2 (program) #0 2 1257 // 2 2 (program) #0 2
1250 TEST(JsNativeJsRuntimeJsSample) { 1258 TEST(JsNativeJsRuntimeJsSample) {
1251 const char* extensions[] = { "v8/profiler" }; 1259 const char* extensions[] = { "v8/profiler" };
1252 v8::ExtensionConfiguration config(1, extensions); 1260 v8::ExtensionConfiguration config(1, extensions);
1253 LocalContext env(&config); 1261 LocalContext env(&config);
1254 v8::HandleScope scope(env->GetIsolate()); 1262 v8::HandleScope scope(env->GetIsolate());
1255 1263
1256 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( 1264 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(
1257 CallJsFunction); 1265 env->GetIsolate(), CallJsFunction);
1258 v8::Local<v8::Function> func = func_template->GetFunction(); 1266 v8::Local<v8::Function> func = func_template->GetFunction();
1259 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction")); 1267 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"));
1260 env->Global()->Set( 1268 env->Global()->Set(
1261 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func); 1269 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func);
1262 1270
1263 v8::Script::Compile( 1271 v8::Script::Compile(
1264 v8::String::NewFromUtf8(env->GetIsolate(), 1272 v8::String::NewFromUtf8(env->GetIsolate(),
1265 js_native_js_runtime_js_test_source))->Run(); 1273 js_native_js_runtime_js_test_source))->Run();
1266 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 1274 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
1267 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 1275 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 // 54 0 CallJsFunction2 #0 6 1342 // 54 0 CallJsFunction2 #0 6
1335 // 54 54 foo #16 7 1343 // 54 54 foo #16 7
1336 // 2 2 (program) #0 2 1344 // 2 2 (program) #0 2
1337 TEST(JsNative1JsNative2JsSample) { 1345 TEST(JsNative1JsNative2JsSample) {
1338 const char* extensions[] = { "v8/profiler" }; 1346 const char* extensions[] = { "v8/profiler" };
1339 v8::ExtensionConfiguration config(1, extensions); 1347 v8::ExtensionConfiguration config(1, extensions);
1340 LocalContext env(&config); 1348 LocalContext env(&config);
1341 v8::HandleScope scope(env->GetIsolate()); 1349 v8::HandleScope scope(env->GetIsolate());
1342 1350
1343 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( 1351 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(
1344 CallJsFunction); 1352 env->GetIsolate(), CallJsFunction);
1345 v8::Local<v8::Function> func1 = func_template->GetFunction(); 1353 v8::Local<v8::Function> func1 = func_template->GetFunction();
1346 func1->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction1")); 1354 func1->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction1"));
1347 env->Global()->Set( 1355 env->Global()->Set(
1348 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction1"), func1); 1356 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction1"), func1);
1349 1357
1350 v8::Local<v8::Function> func2 = v8::FunctionTemplate::New( 1358 v8::Local<v8::Function> func2 = v8::FunctionTemplate::New(
1351 CallJsFunction2)->GetFunction(); 1359 env->GetIsolate(), CallJsFunction2)->GetFunction();
1352 func2->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2")); 1360 func2->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"));
1353 env->Global()->Set( 1361 env->Global()->Set(
1354 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"), func2); 1362 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"), func2);
1355 1363
1356 v8::Script::Compile( 1364 v8::Script::Compile(
1357 v8::String::NewFromUtf8(env->GetIsolate(), 1365 v8::String::NewFromUtf8(env->GetIsolate(),
1358 js_native1_js_native2_js_test_source))->Run(); 1366 js_native1_js_native2_js_test_source))->Run();
1359 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 1367 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
1360 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 1368 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
1361 1369
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1540 inner_profile = NULL; 1548 inner_profile = NULL;
1541 CHECK_EQ(0, iprofiler->GetProfilesCount()); 1549 CHECK_EQ(0, iprofiler->GetProfilesCount());
1542 1550
1543 const v8::CpuProfile* outer_profile = profiler->StopCpuProfiling(outer); 1551 const v8::CpuProfile* outer_profile = profiler->StopCpuProfiling(outer);
1544 CHECK(outer_profile); 1552 CHECK(outer_profile);
1545 CHECK_EQ(1, iprofiler->GetProfilesCount()); 1553 CHECK_EQ(1, iprofiler->GetProfilesCount());
1546 const_cast<v8::CpuProfile*>(outer_profile)->Delete(); 1554 const_cast<v8::CpuProfile*>(outer_profile)->Delete();
1547 outer_profile = NULL; 1555 outer_profile = NULL;
1548 CHECK_EQ(0, iprofiler->GetProfilesCount()); 1556 CHECK_EQ(0, iprofiler->GetProfilesCount());
1549 } 1557 }
OLDNEW
« no previous file with comments | « test/cctest/test-compiler.cc ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698