| Index: test/cctest/test-cpu-profiler.cc
|
| diff --git a/test/cctest/test-cpu-profiler.cc b/test/cctest/test-cpu-profiler.cc
|
| index 7b946076fb4cf48b46e146a340f56a7911c0fedb..c6a31dd27ecdae11a5385e388cd05d04b838cc5b 100644
|
| --- a/test/cctest/test-cpu-profiler.cc
|
| +++ b/test/cctest/test-cpu-profiler.cc
|
| @@ -49,6 +49,12 @@ using i::SmartPointer;
|
| using i::Vector;
|
|
|
|
|
| +// Helper methods
|
| +static v8::Local<v8::Function> GetFunction(v8::Context* env, const char* name) {
|
| + return v8::Local<v8::Function>::Cast(env->Global()->Get(v8_str(name)));
|
| +}
|
| +
|
| +
|
| TEST(StartStop) {
|
| i::Isolate* isolate = CcTest::i_isolate();
|
| CpuProfilesCollection profiles(isolate->heap());
|
| @@ -114,9 +120,9 @@ i::Code* CreateCode(LocalContext* env) {
|
| "}\n"
|
| "%s();\n", name_start, counter, name_start, name_start);
|
| CompileRun(script.start());
|
| - i::Handle<i::JSFunction> fun = v8::Utils::OpenHandle(
|
| - *v8::Local<v8::Function>::Cast(
|
| - (*env)->Global()->Get(v8_str(name_start))));
|
| +
|
| + i::Handle<i::JSFunction> fun =
|
| + v8::Utils::OpenHandle(*GetFunction(**env, name_start));
|
| return fun->code();
|
| }
|
|
|
| @@ -165,7 +171,7 @@ TEST(CodeEvents) {
|
| // Check the state of profile generator.
|
| CodeEntry* aaa = generator.code_map()->FindEntry(aaa_code->address());
|
| CHECK(aaa);
|
| - CHECK_EQ(aaa_str, aaa->name());
|
| + CHECK_EQ(0, strcmp(aaa_str, aaa->name()));
|
|
|
| CodeEntry* comment = generator.code_map()->FindEntry(comment_code->address());
|
| CHECK(comment);
|
| @@ -353,7 +359,7 @@ TEST(DeleteCpuProfile) {
|
| i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(cpu_profiler);
|
|
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
| - v8::Local<v8::String> name1 = v8::String::NewFromUtf8(env->GetIsolate(), "1");
|
| + v8::Local<v8::String> name1 = v8_str("1");
|
| cpu_profiler->StartProfiling(name1);
|
| v8::CpuProfile* p1 = cpu_profiler->StopProfiling(name1);
|
| CHECK(p1);
|
| @@ -362,13 +368,13 @@ TEST(DeleteCpuProfile) {
|
| p1->Delete();
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
|
|
| - v8::Local<v8::String> name2 = v8::String::NewFromUtf8(env->GetIsolate(), "2");
|
| + v8::Local<v8::String> name2 = v8_str("2");
|
| cpu_profiler->StartProfiling(name2);
|
| v8::CpuProfile* p2 = cpu_profiler->StopProfiling(name2);
|
| CHECK(p2);
|
| CHECK_EQ(1, iprofiler->GetProfilesCount());
|
| CHECK(FindCpuProfile(cpu_profiler, p2));
|
| - v8::Local<v8::String> name3 = v8::String::NewFromUtf8(env->GetIsolate(), "3");
|
| + v8::Local<v8::String> name3 = v8_str("3");
|
| cpu_profiler->StartProfiling(name3);
|
| v8::CpuProfile* p3 = cpu_profiler->StopProfiling(name3);
|
| CHECK(p3);
|
| @@ -390,8 +396,7 @@ TEST(ProfileStartEndTime) {
|
| v8::HandleScope scope(env->GetIsolate());
|
| v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
|
|
| - v8::Local<v8::String> profile_name =
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "test");
|
| + v8::Local<v8::String> profile_name = v8_str("test");
|
| cpu_profiler->StartProfiling(profile_name);
|
| const v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name);
|
| CHECK(profile->GetStartTime() <= profile->GetEndTime());
|
| @@ -403,8 +408,7 @@ static v8::CpuProfile* RunProfiler(
|
| v8::Handle<v8::Value> argv[], int argc,
|
| unsigned min_js_samples, bool collect_samples = false) {
|
| v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| - v8::Local<v8::String> profile_name =
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "my_profile");
|
| + v8::Local<v8::String> profile_name = v8_str("my_profile");
|
|
|
| cpu_profiler->StartProfiling(profile_name, collect_samples);
|
|
|
| @@ -454,7 +458,7 @@ static const v8::CpuProfileNode* FindChild(v8::Isolate* isolate,
|
| const v8::CpuProfileNode* node,
|
| const char* name) {
|
| int count = node->GetChildrenCount();
|
| - v8::Handle<v8::String> nameHandle = v8::String::NewFromUtf8(isolate, name);
|
| + v8::Handle<v8::String> nameHandle = v8_str(name);
|
| for (int i = 0; i < count; i++) {
|
| const v8::CpuProfileNode* child = node->GetChild(i);
|
| if (nameHandle->Equals(child->GetFunctionName())) return child;
|
| @@ -542,10 +546,8 @@ TEST(CollectCpuProfile) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
|
| - cpu_profiler_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(cpu_profiler_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t profiling_interval_ms = 200;
|
| v8::Handle<v8::Value> args[] = {
|
| @@ -558,11 +560,9 @@ TEST(CollectCpuProfile) {
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
|
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
|
|
| const v8::CpuProfileNode* startNode =
|
| @@ -619,11 +619,8 @@ TEST(HotDeoptNoFrameEntry) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(
|
| - env->GetIsolate(),
|
| - hot_deopt_no_frame_entry_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(hot_deopt_no_frame_entry_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t profiling_interval_ms = 200;
|
| v8::Handle<v8::Value> args[] = {
|
| @@ -636,11 +633,9 @@ TEST(HotDeoptNoFrameEntry) {
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
|
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
|
|
| const v8::CpuProfileNode* startNode =
|
| @@ -657,10 +652,8 @@ TEST(CollectCpuProfileSamples) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
|
| - cpu_profiler_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(cpu_profiler_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t profiling_interval_ms = 200;
|
| v8::Handle<v8::Value> args[] = {
|
| @@ -709,10 +702,8 @@ TEST(SampleWhenFrameIsNotSetup) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(
|
| - env->GetIsolate(), cpu_profiler_test_source2))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(cpu_profiler_test_source2);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t repeat_count = 100;
|
| #if defined(USE_SIMULATOR)
|
| @@ -728,11 +719,9 @@ TEST(SampleWhenFrameIsNotSetup) {
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
|
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
|
|
| const v8::CpuProfileNode* startNode =
|
| @@ -826,19 +815,14 @@ TEST(NativeAccessorUninitializedIC) {
|
| TestApiCallbacks accessors(100);
|
| v8::Local<v8::External> data =
|
| v8::External::New(isolate, &accessors);
|
| - instance_template->SetAccessor(
|
| - v8::String::NewFromUtf8(isolate, "foo"),
|
| - &TestApiCallbacks::Getter, &TestApiCallbacks::Setter, data);
|
| + instance_template->SetAccessor(v8_str("foo"), &TestApiCallbacks::Getter,
|
| + &TestApiCallbacks::Setter, data);
|
| v8::Local<v8::Function> func = func_template->GetFunction();
|
| v8::Local<v8::Object> instance = func->NewInstance();
|
| - env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
|
| - instance);
|
| + env->Global()->Set(v8_str("instance"), instance);
|
|
|
| - v8::Script::Compile(
|
| - v8::String::NewFromUtf8(isolate, native_accessor_test_source))
|
| - ->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
|
| + CompileRun(native_accessor_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t repeat_count = 1;
|
| v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) };
|
| @@ -871,19 +855,14 @@ TEST(NativeAccessorMonomorphicIC) {
|
| TestApiCallbacks accessors(1);
|
| v8::Local<v8::External> data =
|
| v8::External::New(isolate, &accessors);
|
| - instance_template->SetAccessor(
|
| - v8::String::NewFromUtf8(isolate, "foo"),
|
| - &TestApiCallbacks::Getter, &TestApiCallbacks::Setter, data);
|
| + instance_template->SetAccessor(v8_str("foo"), &TestApiCallbacks::Getter,
|
| + &TestApiCallbacks::Setter, data);
|
| v8::Local<v8::Function> func = func_template->GetFunction();
|
| v8::Local<v8::Object> instance = func->NewInstance();
|
| - env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
|
| - instance);
|
| + env->Global()->Set(v8_str("instance"), instance);
|
|
|
| - v8::Script::Compile(
|
| - v8::String::NewFromUtf8(isolate, native_accessor_test_source))
|
| - ->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
|
| + CompileRun(native_accessor_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| {
|
| // Make sure accessors ICs are in monomorphic state before starting
|
| @@ -930,26 +909,22 @@ TEST(NativeMethodUninitializedIC) {
|
|
|
| v8::Local<v8::FunctionTemplate> func_template =
|
| v8::FunctionTemplate::New(isolate);
|
| - func_template->SetClassName(
|
| - v8::String::NewFromUtf8(isolate, "Test_InstanceCostructor"));
|
| + func_template->SetClassName(v8_str("Test_InstanceCostructor"));
|
| v8::Local<v8::ObjectTemplate> proto_template =
|
| func_template->PrototypeTemplate();
|
| v8::Local<v8::Signature> signature =
|
| v8::Signature::New(isolate, func_template);
|
| - proto_template->Set(v8::String::NewFromUtf8(isolate, "fooMethod"),
|
| - v8::FunctionTemplate::New(isolate,
|
| - &TestApiCallbacks::Callback,
|
| - data, signature, 0));
|
| + proto_template->Set(
|
| + v8_str("fooMethod"),
|
| + v8::FunctionTemplate::New(isolate, &TestApiCallbacks::Callback, data,
|
| + signature, 0));
|
|
|
| v8::Local<v8::Function> func = func_template->GetFunction();
|
| v8::Local<v8::Object> instance = func->NewInstance();
|
| - env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
|
| - instance);
|
| + env->Global()->Set(v8_str("instance"), instance);
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(
|
| - isolate, native_method_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
|
| + CompileRun(native_method_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t repeat_count = 1;
|
| v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) };
|
| @@ -976,26 +951,22 @@ TEST(NativeMethodMonomorphicIC) {
|
|
|
| v8::Local<v8::FunctionTemplate> func_template =
|
| v8::FunctionTemplate::New(isolate);
|
| - func_template->SetClassName(
|
| - v8::String::NewFromUtf8(isolate, "Test_InstanceCostructor"));
|
| + func_template->SetClassName(v8_str("Test_InstanceCostructor"));
|
| v8::Local<v8::ObjectTemplate> proto_template =
|
| func_template->PrototypeTemplate();
|
| v8::Local<v8::Signature> signature =
|
| v8::Signature::New(isolate, func_template);
|
| - proto_template->Set(v8::String::NewFromUtf8(isolate, "fooMethod"),
|
| - v8::FunctionTemplate::New(isolate,
|
| - &TestApiCallbacks::Callback,
|
| - data, signature, 0));
|
| + proto_template->Set(
|
| + v8_str("fooMethod"),
|
| + v8::FunctionTemplate::New(isolate, &TestApiCallbacks::Callback, data,
|
| + signature, 0));
|
|
|
| v8::Local<v8::Function> func = func_template->GetFunction();
|
| v8::Local<v8::Object> instance = func->NewInstance();
|
| - env->Global()->Set(v8::String::NewFromUtf8(isolate, "instance"),
|
| - instance);
|
| + env->Global()->Set(v8_str("instance"), instance);
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(
|
| - isolate, native_method_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
|
| + CompileRun(native_method_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
| {
|
| // Make sure method ICs are in monomorphic state before starting
|
| // profiling.
|
| @@ -1038,21 +1009,16 @@ TEST(BoundFunctionCall) {
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
|
|
| - v8::Script::Compile(
|
| - v8::String::NewFromUtf8(env->GetIsolate(), bound_function_test_source))
|
| - ->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(bound_function_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| // Don't allow |foo| node to be at the top level.
|
| CheckChildrenNames(root, names);
|
|
|
| @@ -1090,8 +1056,8 @@ TEST(TickLines) {
|
|
|
| CompileRun(script.start());
|
|
|
| - i::Handle<i::JSFunction> func = v8::Utils::OpenHandle(
|
| - *v8::Local<v8::Function>::Cast((*env)->Global()->Get(v8_str(func_name))));
|
| + i::Handle<i::JSFunction> func =
|
| + v8::Utils::OpenHandle(*GetFunction(*env, func_name));
|
| CHECK(func->shared());
|
| CHECK(func->shared()->code());
|
| i::Code* code = NULL;
|
| @@ -1131,7 +1097,7 @@ TEST(TickLines) {
|
| // Check the state of profile generator.
|
| CodeEntry* func_entry = generator.code_map()->FindEntry(code_address);
|
| CHECK(func_entry);
|
| - CHECK_EQ(func_name, func_entry->name());
|
| + CHECK_EQ(0, strcmp(func_name, func_entry->name()));
|
| const i::JITLineInfoTable* line_info = func_entry->line_info();
|
| CHECK(line_info);
|
| CHECK(!line_info->empty());
|
| @@ -1190,13 +1156,12 @@ TEST(FunctionCallSample) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - // Collect garbage that might have be generated while installing extensions.
|
| + // Collect garbage that might have be generated while installing
|
| + // extensions.
|
| CcTest::heap()->CollectAllGarbage(Heap::kNoGCFlags);
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(
|
| - env->GetIsolate(), call_function_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(call_function_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t duration_ms = 100;
|
| v8::Handle<v8::Value> args[] = {
|
| @@ -1208,13 +1173,10 @@ TEST(FunctionCallSample) {
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| {
|
| ScopedVector<v8::Handle<v8::String> > names(4);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| - names[3] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), i::ProfileGenerator::kUnresolvedFunctionName);
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| + names[3] = v8_str(i::ProfileGenerator::kUnresolvedFunctionName);
|
| // Don't allow |bar| and |call| nodes to be at the top level.
|
| CheckChildrenNames(root, names);
|
| }
|
| @@ -1228,8 +1190,8 @@ TEST(FunctionCallSample) {
|
| CHECK(is_gc_stress_testing || startNode);
|
| if (startNode) {
|
| ScopedVector<v8::Handle<v8::String> > names(2);
|
| - names[0] = v8::String::NewFromUtf8(env->GetIsolate(), "bar");
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(), "call");
|
| + names[0] = v8_str("bar");
|
| + names[1] = v8_str("call");
|
| CheckChildrenNames(startNode, names);
|
| }
|
|
|
| @@ -1237,7 +1199,7 @@ TEST(FunctionCallSample) {
|
| env->GetIsolate(), root, i::ProfileGenerator::kUnresolvedFunctionName);
|
| if (unresolvedNode) {
|
| ScopedVector<v8::Handle<v8::String> > names(1);
|
| - names[0] = v8::String::NewFromUtf8(env->GetIsolate(), "call");
|
| + names[0] = v8_str("call");
|
| CheckChildrenNames(unresolvedNode, names);
|
| }
|
|
|
| @@ -1245,19 +1207,20 @@ TEST(FunctionCallSample) {
|
| }
|
|
|
|
|
| -static const char* function_apply_test_source = "function bar(iterations) {\n"
|
| -"}\n"
|
| -"function test() {\n"
|
| -" bar.apply(this, [10 * 1000]);\n"
|
| -"}\n"
|
| -"function start(duration) {\n"
|
| -" var start = Date.now();\n"
|
| -" while (Date.now() - start < duration) {\n"
|
| -" try {\n"
|
| -" test();\n"
|
| -" } catch(e) {}\n"
|
| -" }\n"
|
| -"}";
|
| +static const char* function_apply_test_source =
|
| + "function bar(iterations) {\n"
|
| + "}\n"
|
| + "function test() {\n"
|
| + " bar.apply(this, [10 * 1000]);\n"
|
| + "}\n"
|
| + "function start(duration) {\n"
|
| + " var start = Date.now();\n"
|
| + " while (Date.now() - start < duration) {\n"
|
| + " try {\n"
|
| + " test();\n"
|
| + " } catch(e) {}\n"
|
| + " }\n"
|
| + "}";
|
|
|
|
|
| // [Top down]:
|
| @@ -1274,11 +1237,8 @@ TEST(FunctionApplySample) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - v8::Script::Compile(
|
| - v8::String::NewFromUtf8(env->GetIsolate(), function_apply_test_source))
|
| - ->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(function_apply_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| int32_t duration_ms = 100;
|
| v8::Handle<v8::Value> args[] = {
|
| @@ -1291,11 +1251,9 @@ TEST(FunctionApplySample) {
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| {
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| // Don't allow |test|, |bar| and |apply| nodes to be at the top level.
|
| CheckChildrenNames(root, names);
|
| }
|
| @@ -1305,9 +1263,8 @@ TEST(FunctionApplySample) {
|
| if (startNode) {
|
| {
|
| ScopedVector<v8::Handle<v8::String> > names(2);
|
| - names[0] = v8::String::NewFromUtf8(env->GetIsolate(), "test");
|
| - names[1] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kUnresolvedFunctionName);
|
| + names[0] = v8_str("test");
|
| + names[1] = v8_str(ProfileGenerator::kUnresolvedFunctionName);
|
| CheckChildrenNames(startNode, names);
|
| }
|
|
|
| @@ -1315,11 +1272,11 @@ TEST(FunctionApplySample) {
|
| FindChild(env->GetIsolate(), startNode, "test");
|
| if (testNode) {
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(env->GetIsolate(), "bar");
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(), "apply");
|
| + names[0] = v8_str("bar");
|
| + names[1] = v8_str("apply");
|
| // apply calls "get length" before invoking the function itself
|
| // and we may get hit into it.
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "get length");
|
| + names[2] = v8_str("get length");
|
| CheckChildrenNames(testNode, names);
|
| }
|
|
|
| @@ -1327,7 +1284,7 @@ TEST(FunctionApplySample) {
|
| FindChild(env->GetIsolate(), startNode,
|
| ProfileGenerator::kUnresolvedFunctionName)) {
|
| ScopedVector<v8::Handle<v8::String> > names(1);
|
| - names[0] = v8::String::NewFromUtf8(env->GetIsolate(), "apply");
|
| + names[0] = v8_str("apply");
|
| CheckChildrenNames(unresolvedNode, names);
|
| GetChild(env->GetIsolate(), unresolvedNode, "apply");
|
| }
|
| @@ -1365,14 +1322,11 @@ TEST(CpuProfileDeepStack) {
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(
|
| - env->GetIsolate(), cpu_profiler_deep_stack_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(cpu_profiler_deep_stack_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| - v8::Local<v8::String> profile_name =
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "my_profile");
|
| + v8::Local<v8::String> profile_name = v8_str("my_profile");
|
| function->Call(env->Global(), 0, NULL);
|
| v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name);
|
| CHECK(profile);
|
| @@ -1382,11 +1336,9 @@ TEST(CpuProfileDeepStack) {
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| {
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
| }
|
|
|
| @@ -1438,25 +1390,20 @@ TEST(JsNativeJsSample) {
|
| v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(
|
| env->GetIsolate(), CallJsFunction);
|
| v8::Local<v8::Function> func = func_template->GetFunction();
|
| - func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"));
|
| - env->Global()->Set(
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func);
|
| + func->SetName(v8_str("CallJsFunction"));
|
| + env->Global()->Set(v8_str("CallJsFunction"), func);
|
|
|
| - v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
|
| - js_native_js_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(js_native_js_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| {
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
| }
|
|
|
| @@ -1507,25 +1454,19 @@ TEST(JsNativeJsRuntimeJsSample) {
|
| v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(
|
| env->GetIsolate(), CallJsFunction);
|
| v8::Local<v8::Function> func = func_template->GetFunction();
|
| - func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"));
|
| - env->Global()->Set(
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func);
|
| + func->SetName(v8_str("CallJsFunction"));
|
| + env->Global()->Set(v8_str("CallJsFunction"), func);
|
|
|
| - v8::Script::Compile(
|
| - v8::String::NewFromUtf8(env->GetIsolate(),
|
| - js_native_js_runtime_js_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(js_native_js_runtime_js_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
|
|
| const v8::CpuProfileNode* startNode =
|
| @@ -1587,31 +1528,24 @@ TEST(JsNative1JsNative2JsSample) {
|
| v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New(
|
| env->GetIsolate(), CallJsFunction);
|
| v8::Local<v8::Function> func1 = func_template->GetFunction();
|
| - func1->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction1"));
|
| - env->Global()->Set(
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction1"), func1);
|
| + func1->SetName(v8_str("CallJsFunction1"));
|
| + env->Global()->Set(v8_str("CallJsFunction1"), func1);
|
|
|
| v8::Local<v8::Function> func2 = v8::FunctionTemplate::New(
|
| env->GetIsolate(), CallJsFunction2)->GetFunction();
|
| - func2->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"));
|
| - env->Global()->Set(
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"), func2);
|
| + func2->SetName(v8_str("CallJsFunction2"));
|
| + env->Global()->Set(v8_str("CallJsFunction2"), func2);
|
|
|
| - v8::Script::Compile(
|
| - v8::String::NewFromUtf8(env->GetIsolate(),
|
| - js_native1_js_native2_js_test_source))->Run();
|
| - v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
|
| + CompileRun(js_native1_js_native2_js_test_source);
|
| + v8::Local<v8::Function> function = GetFunction(*env, "start");
|
|
|
| v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str("start");
|
| CheckChildrenNames(root, names);
|
|
|
| const v8::CpuProfileNode* startNode =
|
| @@ -1644,8 +1578,7 @@ TEST(IdleTime) {
|
| v8::HandleScope scope(env->GetIsolate());
|
| v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
|
|
| - v8::Local<v8::String> profile_name =
|
| - v8::String::NewFromUtf8(env->GetIsolate(), "my_profile");
|
| + v8::Local<v8::String> profile_name = v8_str("my_profile");
|
| cpu_profiler->StartProfiling(profile_name);
|
|
|
| i::Isolate* isolate = CcTest::i_isolate();
|
| @@ -1669,12 +1602,9 @@ TEST(IdleTime) {
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| ScopedVector<v8::Handle<v8::String> > names(3);
|
| - names[0] = v8::String::NewFromUtf8(
|
| - env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
|
| - names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kProgramEntryName);
|
| - names[2] = v8::String::NewFromUtf8(env->GetIsolate(),
|
| - ProfileGenerator::kIdleEntryName);
|
| + names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName);
|
| + names[1] = v8_str(ProfileGenerator::kProgramEntryName);
|
| + names[2] = v8_str(ProfileGenerator::kIdleEntryName);
|
| CheckChildrenNames(root, names);
|
|
|
| const v8::CpuProfileNode* programNode =
|
| @@ -1695,10 +1625,8 @@ static void CheckFunctionDetails(v8::Isolate* isolate,
|
| const v8::CpuProfileNode* node,
|
| const char* name, const char* script_name,
|
| int script_id, int line, int column) {
|
| - CHECK(
|
| - v8::String::NewFromUtf8(isolate, name)->Equals(node->GetFunctionName()));
|
| - CHECK(v8::String::NewFromUtf8(isolate, script_name)
|
| - ->Equals(node->GetScriptResourceName()));
|
| + CHECK(v8_str(name)->Equals(node->GetFunctionName()));
|
| + CHECK(v8_str(script_name)->Equals(node->GetScriptResourceName()));
|
| CHECK_EQ(script_id, node->GetScriptId());
|
| CHECK_EQ(line, node->GetLineNumber());
|
| CHECK_EQ(column, node->GetColumnNumber());
|
| @@ -1751,17 +1679,16 @@ TEST(DontStopOnFinishedProfileDelete) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
| - v8::Isolate* isolate = env->GetIsolate();
|
|
|
| v8::CpuProfiler* profiler = env->GetIsolate()->GetCpuProfiler();
|
| i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
|
|
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
| - v8::Handle<v8::String> outer = v8::String::NewFromUtf8(isolate, "outer");
|
| + v8::Handle<v8::String> outer = v8_str("outer");
|
| profiler->StartProfiling(outer);
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
|
|
| - v8::Handle<v8::String> inner = v8::String::NewFromUtf8(isolate, "inner");
|
| + v8::Handle<v8::String> inner = v8_str("inner");
|
| profiler->StartProfiling(inner);
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
|
|
|
|