| Index: test/cctest/profiler-extension.cc | 
| diff --git a/test/cctest/profiler-extension.cc b/test/cctest/profiler-extension.cc | 
| index 024cc9c635a3d1b97d9c474a004b866e8598507b..38008685146265bda64f65a10a47185ba776eee4 100644 | 
| --- a/test/cctest/profiler-extension.cc | 
| +++ b/test/cctest/profiler-extension.cc | 
| @@ -33,7 +33,18 @@ | 
| namespace v8 { | 
| namespace internal { | 
|  | 
| -v8::CpuProfile* ProfilerExtension::last_profile = NULL; | 
| +ProfilerExtension::Scope::Scope(v8::Isolate* isolate) { | 
| +  DCHECK(!profiler_); | 
| +  profiler_ = v8::CpuProfiler::New(isolate); | 
| +} | 
| + | 
| +ProfilerExtension::Scope::~Scope() { | 
| +  profiler_->Dispose(); | 
| +  profiler_ = nullptr; | 
| +} | 
| + | 
| +v8::CpuProfiler* ProfilerExtension::Scope::profiler_ = nullptr; | 
| +v8::CpuProfile* ProfilerExtension::last_profile = nullptr; | 
| const char* ProfilerExtension::kSource = | 
| "native function startProfiling();" | 
| "native function stopProfiling();" | 
| @@ -58,24 +69,22 @@ v8::Local<v8::FunctionTemplate> ProfilerExtension::GetNativeFunctionTemplate( | 
|  | 
| void ProfilerExtension::StartProfiling( | 
| const v8::FunctionCallbackInfo<v8::Value>& args) { | 
| -  last_profile = NULL; | 
| -  v8::CpuProfiler* cpu_profiler = args.GetIsolate()->GetCpuProfiler(); | 
| -  cpu_profiler->StartProfiling((args.Length() > 0) | 
| -      ? args[0].As<v8::String>() | 
| -      : v8::String::Empty(args.GetIsolate())); | 
| +  last_profile = nullptr; | 
| +  Scope::profiler_->StartProfiling((args.Length() > 0) | 
| +                                       ? args[0].As<v8::String>() | 
| +                                       : v8::String::Empty(args.GetIsolate())); | 
| } | 
|  | 
| void ProfilerExtension::StopProfiling( | 
| const v8::FunctionCallbackInfo<v8::Value>& args) { | 
| -  v8::CpuProfiler* cpu_profiler = args.GetIsolate()->GetCpuProfiler(); | 
| -  last_profile = cpu_profiler->StopProfiling((args.Length() > 0) | 
| -      ? args[0].As<v8::String>() | 
| -      : v8::String::Empty(args.GetIsolate())); | 
| +  last_profile = Scope::profiler_->StopProfiling( | 
| +      (args.Length() > 0) ? args[0].As<v8::String>() | 
| +                          : v8::String::Empty(args.GetIsolate())); | 
| } | 
|  | 
| void ProfilerExtension::CollectSample( | 
| const v8::FunctionCallbackInfo<v8::Value>& args) { | 
| -  args.GetIsolate()->GetCpuProfiler()->CollectSample(); | 
| +  Scope::profiler_->CollectSample(); | 
| } | 
|  | 
| }  // namespace internal | 
|  |