| Index: test/cctest/test-cpu-profiler.cc
|
| diff --git a/test/cctest/test-cpu-profiler.cc b/test/cctest/test-cpu-profiler.cc
|
| index 8b34875f2b8dd0f5f13e8aa021ec76c23f512648..6eb1f0bbac6cd320f1ea29f585c20001fc784479 100644
|
| --- a/test/cctest/test-cpu-profiler.cc
|
| +++ b/test/cctest/test-cpu-profiler.cc
|
| @@ -278,7 +278,7 @@ TEST(TickEvents) {
|
| TEST(CrashIfStoppingLastNonExistentProfile) {
|
| CcTest::InitializeVM();
|
| TestSetup test_setup;
|
| - CpuProfiler* profiler = CcTest::i_isolate()->cpu_profiler();
|
| + std::unique_ptr<CpuProfiler> profiler(new CpuProfiler(CcTest::i_isolate()));
|
| profiler->StartProfiling("1");
|
| profiler->StopProfiling("2");
|
| profiler->StartProfiling("1");
|
| @@ -337,7 +337,7 @@ TEST(Issue1398) {
|
| TEST(DeleteAllCpuProfiles) {
|
| CcTest::InitializeVM();
|
| TestSetup test_setup;
|
| - CpuProfiler* profiler = CcTest::i_isolate()->cpu_profiler();
|
| + std::unique_ptr<CpuProfiler> profiler(new CpuProfiler(CcTest::i_isolate()));
|
| CHECK_EQ(0, profiler->GetProfilesCount());
|
| profiler->DeleteAllProfiles();
|
| CHECK_EQ(0, profiler->GetProfilesCount());
|
| @@ -381,7 +381,7 @@ static bool FindCpuProfile(v8::CpuProfiler* v8profiler,
|
| TEST(DeleteCpuProfile) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| + v8::CpuProfiler* cpu_profiler = v8::CpuProfiler::New(env->GetIsolate());
|
| i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(cpu_profiler);
|
|
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
| @@ -414,42 +414,67 @@ TEST(DeleteCpuProfile) {
|
| CHECK(FindCpuProfile(cpu_profiler, p3));
|
| p3->Delete();
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
| + cpu_profiler->Dispose();
|
| }
|
|
|
|
|
| TEST(ProfileStartEndTime) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| + v8::CpuProfiler* cpu_profiler = v8::CpuProfiler::New(env->GetIsolate());
|
|
|
| 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());
|
| + cpu_profiler->Dispose();
|
| }
|
|
|
| -static v8::CpuProfile* RunProfiler(v8::Local<v8::Context> env,
|
| - v8::Local<v8::Function> function,
|
| - v8::Local<v8::Value> argv[], int argc,
|
| - unsigned min_js_samples = 0,
|
| - unsigned min_external_samples = 0,
|
| - bool collect_samples = false) {
|
| - v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| +class ProfilerHelper {
|
| + public:
|
| + explicit ProfilerHelper(const v8::Local<v8::Context>& context)
|
| + : context_(context),
|
| + profiler_(v8::CpuProfiler::New(context->GetIsolate())) {
|
| + i::ProfilerExtension::set_profiler(profiler_);
|
| + }
|
| + ~ProfilerHelper() {
|
| + i::ProfilerExtension::set_profiler(static_cast<CpuProfiler*>(nullptr));
|
| + profiler_->Dispose();
|
| + }
|
| +
|
| + v8::CpuProfile* Run(v8::Local<v8::Function> function,
|
| + v8::Local<v8::Value> argv[], int argc,
|
| + unsigned min_js_samples = 0,
|
| + unsigned min_external_samples = 0,
|
| + bool collect_samples = false);
|
| +
|
| + v8::CpuProfiler* profiler() { return profiler_; }
|
| +
|
| + private:
|
| + v8::Local<v8::Context> context_;
|
| + v8::CpuProfiler* profiler_;
|
| +};
|
| +
|
| +v8::CpuProfile* ProfilerHelper::Run(v8::Local<v8::Function> function,
|
| + v8::Local<v8::Value> argv[], int argc,
|
| + unsigned min_js_samples,
|
| + unsigned min_external_samples,
|
| + bool collect_samples) {
|
| v8::Local<v8::String> profile_name = v8_str("my_profile");
|
|
|
| - cpu_profiler->SetSamplingInterval(100);
|
| - cpu_profiler->StartProfiling(profile_name, collect_samples);
|
| + profiler_->SetSamplingInterval(100);
|
| + profiler_->StartProfiling(profile_name, collect_samples);
|
|
|
| - v8::internal::CpuProfiler* i_cpu_profiler =
|
| - reinterpret_cast<v8::internal::CpuProfiler*>(cpu_profiler);
|
| - v8::sampler::Sampler* sampler = i_cpu_profiler->processor()->sampler();
|
| + v8::internal::CpuProfiler* iprofiler =
|
| + reinterpret_cast<v8::internal::CpuProfiler*>(profiler_);
|
| + v8::sampler::Sampler* sampler = iprofiler->processor()->sampler();
|
| sampler->StartCountingSamples();
|
| do {
|
| - function->Call(env, env->Global(), argc, argv).ToLocalChecked();
|
| + function->Call(context_, context_->Global(), argc, argv).ToLocalChecked();
|
| } while (sampler->js_sample_count() < min_js_samples ||
|
| sampler->external_sample_count() < min_external_samples);
|
|
|
| - v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name);
|
| + v8::CpuProfile* profile = profiler_->StopProfiling(profile_name);
|
|
|
| CHECK(profile);
|
| // Dump collected profile to have a better diagnostic in case of failure.
|
| @@ -458,7 +483,6 @@ static v8::CpuProfile* RunProfiler(v8::Local<v8::Context> env,
|
| return profile;
|
| }
|
|
|
| -
|
| static const v8::CpuProfileNode* FindChild(v8::Local<v8::Context> context,
|
| const v8::CpuProfileNode* node,
|
| const char* name) {
|
| @@ -507,10 +531,6 @@ static const ProfileNode* GetSimpleBranch(v8::Local<v8::Context> context,
|
| return reinterpret_cast<const ProfileNode*>(node);
|
| }
|
|
|
| -static void CallCollectSample(const v8::FunctionCallbackInfo<v8::Value>& info) {
|
| - info.GetIsolate()->GetCpuProfiler()->CollectSample();
|
| -}
|
| -
|
| static const char* cpu_profiler_test_source =
|
| "%NeverOptimizeFunction(loop);\n"
|
| "%NeverOptimizeFunction(delay);\n"
|
| @@ -573,8 +593,8 @@ TEST(CollectCpuProfile) {
|
| int32_t profiling_interval_ms = 200;
|
| v8::Local<v8::Value> args[] = {
|
| v8::Integer::New(env->GetIsolate(), profiling_interval_ms)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 1000);
|
| + ProfilerHelper helper(env.local());
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -630,8 +650,8 @@ TEST(HotDeoptNoFrameEntry) {
|
| int32_t profiling_interval_ms = 200;
|
| v8::Local<v8::Value> args[] = {
|
| v8::Integer::New(env->GetIsolate(), profiling_interval_ms)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 1000);
|
| + ProfilerHelper helper(env.local());
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 1000);
|
| function->Call(env.local(), env->Global(), arraysize(args), args)
|
| .ToLocalChecked();
|
|
|
| @@ -653,8 +673,9 @@ TEST(CollectCpuProfileSamples) {
|
| int32_t profiling_interval_ms = 200;
|
| v8::Local<v8::Value> args[] = {
|
| v8::Integer::New(env->GetIsolate(), profiling_interval_ms)};
|
| + ProfilerHelper helper(env.local());
|
| v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 1000, 0, true);
|
| + helper.Run(function, args, arraysize(args), 1000, 0, true);
|
|
|
| CHECK_LE(200, profile->GetSamplesCount());
|
| uint64_t end_time = profile->GetEndTime();
|
| @@ -706,8 +727,8 @@ TEST(SampleWhenFrameIsNotSetup) {
|
| int32_t duration_ms = 100;
|
| v8::Local<v8::Value> args[] = {
|
| v8::Integer::New(env->GetIsolate(), duration_ms)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 1000);
|
| + ProfilerHelper helper(env.local());
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -788,8 +809,7 @@ TEST(NativeAccessorUninitializedIC) {
|
| func_template->InstanceTemplate();
|
|
|
| TestApiCallbacks accessors(100);
|
| - v8::Local<v8::External> data =
|
| - v8::External::New(isolate, &accessors);
|
| + v8::Local<v8::External> data = v8::External::New(isolate, &accessors);
|
| instance_template->SetAccessor(v8_str("foo"), &TestApiCallbacks::Getter,
|
| &TestApiCallbacks::Setter, data);
|
| v8::Local<v8::Function> func =
|
| @@ -801,10 +821,10 @@ TEST(NativeAccessorUninitializedIC) {
|
| CompileRun(native_accessor_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env.local(), "start");
|
|
|
| + ProfilerHelper helper(env.local());
|
| int32_t repeat_count = 1;
|
| v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 0, 100);
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 0, 100);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -856,8 +876,8 @@ TEST(NativeAccessorMonomorphicIC) {
|
|
|
| int32_t repeat_count = 100;
|
| v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 0, 100);
|
| + ProfilerHelper helper(env.local());
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 0, 100);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -881,12 +901,11 @@ TEST(NativeMethodUninitializedIC) {
|
| v8::HandleScope scope(isolate);
|
|
|
| TestApiCallbacks callbacks(100);
|
| - v8::Local<v8::External> data =
|
| - v8::External::New(isolate, &callbacks);
|
| + v8::Local<v8::External> data = v8::External::New(isolate, &callbacks);
|
|
|
| v8::Local<v8::FunctionTemplate> func_template =
|
| v8::FunctionTemplate::New(isolate);
|
| - func_template->SetClassName(v8_str("Test_InstanceCostructor"));
|
| + func_template->SetClassName(v8_str("Test_InstanceConstructor"));
|
| v8::Local<v8::ObjectTemplate> proto_template =
|
| func_template->PrototypeTemplate();
|
| v8::Local<v8::Signature> signature =
|
| @@ -905,10 +924,10 @@ TEST(NativeMethodUninitializedIC) {
|
| CompileRun(native_method_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env.local(), "start");
|
|
|
| + ProfilerHelper helper(env.local());
|
| int32_t repeat_count = 1;
|
| v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 0, 100);
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 0, 100);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -959,10 +978,10 @@ TEST(NativeMethodMonomorphicIC) {
|
| callbacks.set_warming_up(false);
|
| }
|
|
|
| + ProfilerHelper helper(env.local());
|
| int32_t repeat_count = 100;
|
| v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 0, 200);
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 0, 200);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| GetChild(env.local(), root, "start");
|
| @@ -991,7 +1010,8 @@ TEST(BoundFunctionCall) {
|
| CompileRun(bound_function_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env, "start");
|
|
|
| - v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0);
|
| + ProfilerHelper helper(env);
|
| + v8::CpuProfile* profile = helper.Run(function, nullptr, 0);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
|
|
| @@ -1146,11 +1166,11 @@ TEST(FunctionCallSample) {
|
| CompileRun(call_function_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env.local(), "start");
|
|
|
| + ProfilerHelper helper(env.local());
|
| int32_t duration_ms = 100;
|
| v8::Local<v8::Value> args[] = {
|
| v8::Integer::New(env->GetIsolate(), duration_ms)};
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 1000);
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -1199,12 +1219,11 @@ TEST(FunctionApplySample) {
|
| CompileRun(function_apply_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env.local(), "start");
|
|
|
| + ProfilerHelper helper(env.local());
|
| int32_t duration_ms = 100;
|
| v8::Local<v8::Value> args[] = {
|
| v8::Integer::New(env->GetIsolate(), duration_ms)};
|
| -
|
| - v8::CpuProfile* profile =
|
| - RunProfiler(env.local(), function, args, arraysize(args), 1000);
|
| + v8::CpuProfile* profile = helper.Run(function, args, arraysize(args), 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
|
| @@ -1245,14 +1264,14 @@ TEST(CpuProfileDeepStack) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
| + ProfilerHelper helper(env);
|
|
|
| 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_str("my_profile");
|
| function->Call(env, env->Global(), 0, NULL).ToLocalChecked();
|
| - v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name);
|
| + v8::CpuProfile* profile = helper.profiler()->StopProfiling(profile_name);
|
| CHECK(profile);
|
| // Dump collected profile to have a better diagnostic in case of failure.
|
| reinterpret_cast<i::CpuProfile*>(profile)->Print();
|
| @@ -1314,7 +1333,8 @@ TEST(JsNativeJsSample) {
|
| CompileRun(js_native_js_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env, "start");
|
|
|
| - v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 1000);
|
| + ProfilerHelper helper(env);
|
| + v8::CpuProfile* profile = helper.Run(function, nullptr, 0, 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env, root, "start");
|
| @@ -1364,8 +1384,9 @@ TEST(JsNativeJsRuntimeJsSample) {
|
| env->Global()->Set(env, v8_str("CallJsFunction"), func).FromJust();
|
|
|
| CompileRun(js_native_js_runtime_js_test_source);
|
| + ProfilerHelper helper(env);
|
| v8::Local<v8::Function> function = GetFunction(env, "start");
|
| - v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 1000);
|
| + v8::CpuProfile* profile = helper.Run(function, nullptr, 0, 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env, root, "start");
|
| @@ -1427,9 +1448,10 @@ TEST(JsNative1JsNative2JsSample) {
|
| env->Global()->Set(env, v8_str("CallJsFunction2"), func2).FromJust();
|
|
|
| CompileRun(js_native1_js_native2_js_test_source);
|
| - v8::Local<v8::Function> function = GetFunction(env, "start");
|
|
|
| - v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 1000);
|
| + ProfilerHelper helper(env);
|
| + v8::Local<v8::Function> function = GetFunction(env, "start");
|
| + v8::CpuProfile* profile = helper.Run(function, nullptr, 0, 1000);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env, root, "start");
|
| @@ -1448,6 +1470,10 @@ static const char* js_force_collect_sample_source =
|
| " CallCollectSample();\n"
|
| "}";
|
|
|
| +static void CallCollectSample(const v8::FunctionCallbackInfo<v8::Value>& info) {
|
| + i::ProfilerExtension::profiler()->CollectSample();
|
| +}
|
| +
|
| TEST(CollectSampleAPI) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| @@ -1461,8 +1487,9 @@ TEST(CollectSampleAPI) {
|
| env->Global()->Set(env, v8_str("CallCollectSample"), func).FromJust();
|
|
|
| CompileRun(js_force_collect_sample_source);
|
| + ProfilerHelper helper(env);
|
| v8::Local<v8::Function> function = GetFunction(env, "start");
|
| - v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0);
|
| + v8::CpuProfile* profile = helper.Run(function, nullptr, 0, 0);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env, root, "start");
|
| @@ -1514,9 +1541,10 @@ TEST(JsNativeJsRuntimeJsSampleMultiple) {
|
| env->Global()->Set(env, v8_str("CallJsFunction"), func).FromJust();
|
|
|
| CompileRun(js_native_js_runtime_multiple_test_source);
|
| - v8::Local<v8::Function> function = GetFunction(env, "start");
|
|
|
| - v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 500, 500);
|
| + ProfilerHelper helper(env);
|
| + v8::Local<v8::Function> function = GetFunction(env, "start");
|
| + v8::CpuProfile* profile = helper.Run(function, nullptr, 0, 500, 500);
|
|
|
| const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
| const v8::CpuProfileNode* start_node = GetChild(env, root, "start");
|
| @@ -1568,14 +1596,14 @@ TEST(Inlining) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
| + ProfilerHelper helper(env);
|
|
|
| CompileRun(inlining_test_source);
|
| v8::Local<v8::Function> function = GetFunction(env, "start");
|
|
|
| - v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| v8::Local<v8::String> profile_name = v8_str("my_profile");
|
| function->Call(env, env->Global(), 0, NULL).ToLocalChecked();
|
| - v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name);
|
| + v8::CpuProfile* profile = helper.profiler()->StopProfiling(profile_name);
|
| CHECK(profile);
|
| // Dump collected profile to have a better diagnostic in case of failure.
|
| reinterpret_cast<i::CpuProfile*>(profile)->Print();
|
| @@ -1597,13 +1625,14 @@ TEST(Inlining) {
|
| TEST(IdleTime) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
| + v8::CpuProfiler* cpu_profiler = v8::CpuProfiler::New(env->GetIsolate());
|
|
|
| v8::Local<v8::String> profile_name = v8_str("my_profile");
|
| cpu_profiler->StartProfiling(profile_name);
|
|
|
| i::Isolate* isolate = CcTest::i_isolate();
|
| - i::ProfilerEventsProcessor* processor = isolate->cpu_profiler()->processor();
|
| + i::ProfilerEventsProcessor* processor =
|
| + reinterpret_cast<i::CpuProfiler*>(cpu_profiler)->processor();
|
|
|
| processor->AddCurrentStack(isolate, true);
|
| cpu_profiler->SetIdle(true);
|
| @@ -1630,6 +1659,7 @@ TEST(IdleTime) {
|
| CHECK_GE(idle_node->GetHitCount(), 3u);
|
|
|
| profile->Delete();
|
| + cpu_profiler->Dispose();
|
| }
|
|
|
| static void CheckFunctionDetails(v8::Isolate* isolate,
|
| @@ -1652,6 +1682,7 @@ TEST(FunctionDetails) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
| + ProfilerHelper helper(env);
|
|
|
| v8::Local<v8::Script> script_a = CompileWithOrigin(
|
| "%NeverOptimizeFunction(foo);\n"
|
| @@ -1698,7 +1729,7 @@ TEST(DontStopOnFinishedProfileDelete) {
|
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
|
| v8::Context::Scope context_scope(env);
|
|
|
| - v8::CpuProfiler* profiler = env->GetIsolate()->GetCpuProfiler();
|
| + v8::CpuProfiler* profiler = v8::CpuProfiler::New(env->GetIsolate());
|
| i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
|
|
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
| @@ -1723,6 +1754,7 @@ TEST(DontStopOnFinishedProfileDelete) {
|
| outer_profile->Delete();
|
| outer_profile = NULL;
|
| CHECK_EQ(0, iprofiler->GetProfilesCount());
|
| + profiler->Dispose();
|
| }
|
|
|
|
|
| @@ -1744,9 +1776,9 @@ TEST(CollectDeoptEvents) {
|
| 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 = isolate->GetCpuProfiler();
|
| - i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
|
| + ProfilerHelper helper(env);
|
| + i::CpuProfiler* iprofiler =
|
| + reinterpret_cast<i::CpuProfiler*>(helper.profiler());
|
|
|
| const char opt_source[] =
|
| "function opt_function%d(value, depth) {\n"
|
| @@ -1874,9 +1906,9 @@ TEST(DeoptAtFirstLevelInlinedSource) {
|
| 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 = isolate->GetCpuProfiler();
|
| - i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
|
| + ProfilerHelper helper(env);
|
| + i::CpuProfiler* iprofiler =
|
| + reinterpret_cast<i::CpuProfiler*>(helper.profiler());
|
|
|
| // 0.........1.........2.........3.........4.........5.........6.........7
|
| const char* source =
|
| @@ -1943,9 +1975,9 @@ TEST(DeoptAtSecondLevelInlinedSource) {
|
| 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 = isolate->GetCpuProfiler();
|
| - i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
|
| + ProfilerHelper helper(env);
|
| + i::CpuProfiler* iprofiler =
|
| + reinterpret_cast<i::CpuProfiler*>(helper.profiler());
|
|
|
| // 0.........1.........2.........3.........4.........5.........6.........7
|
| const char* source =
|
| @@ -2017,9 +2049,9 @@ TEST(DeoptUntrackedFunction) {
|
| 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 = isolate->GetCpuProfiler();
|
| - i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
|
| + ProfilerHelper helper(env);
|
| + i::CpuProfiler* iprofiler =
|
| + reinterpret_cast<i::CpuProfiler*>(helper.profiler());
|
|
|
| // 0.........1.........2.........3.........4.........5.........6.........7
|
| const char* source =
|
|
|