Chromium Code Reviews| Index: test/cctest/test-cpu-profiler.cc |
| diff --git a/test/cctest/test-cpu-profiler.cc b/test/cctest/test-cpu-profiler.cc |
| index ef3571a7d26770bf4e284e5fb643fe0571badd76..2395a502d66ebeb7c9e7729e2d3496b90ab998e2 100644 |
| --- a/test/cctest/test-cpu-profiler.cc |
| +++ b/test/cctest/test-cpu-profiler.cc |
| @@ -27,6 +27,9 @@ |
| // |
| // Tests of profiles generator and utilities. |
| +// TODO(jochen): Remove this after the setting is turned on globally. |
| +#define V8_IMMINENT_DEPRECATION_WARNINGS |
| + |
| #include "src/v8.h" |
| #include "include/v8-profiler.h" |
| @@ -51,8 +54,10 @@ using v8::base::SmartPointer; |
| // 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))); |
| +static v8::Local<v8::Function> GetFunction(v8::Local<v8::Context> env, |
| + const char* name) { |
| + return v8::Local<v8::Function>::Cast( |
| + env->Global()->Get(env, v8_str(name)).ToLocalChecked()); |
| } |
| @@ -135,7 +140,7 @@ i::Code* CreateCode(LocalContext* env) { |
| CompileRun(script.start()); |
| i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast( |
| - v8::Utils::OpenHandle(*GetFunction(**env, name_start))); |
| + v8::Utils::OpenHandle(*GetFunction(env->local(), name_start))); |
| return fun->code(); |
| } |
| @@ -416,10 +421,11 @@ TEST(ProfileStartEndTime) { |
| } |
| -static v8::CpuProfile* RunProfiler( |
| - v8::Handle<v8::Context> env, v8::Handle<v8::Function> function, |
| - v8::Handle<v8::Value> argv[], int argc, |
| - unsigned min_js_samples, bool collect_samples = false) { |
| +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, |
| + bool collect_samples = false) { |
| v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler(); |
| v8::Local<v8::String> profile_name = v8_str("my_profile"); |
| @@ -429,7 +435,7 @@ static v8::CpuProfile* RunProfiler( |
| reinterpret_cast<i::Isolate*>(env->GetIsolate())->logger()->sampler(); |
| sampler->StartCountingSamples(); |
| do { |
| - function->Call(env->Global(), argc, argv); |
| + function->Call(env, env->Global(), argc, argv).ToLocalChecked(); |
| } while (sampler->js_and_external_sample_count() < min_js_samples); |
| v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name); |
| @@ -442,21 +448,23 @@ static v8::CpuProfile* RunProfiler( |
| } |
| -static bool ContainsString(v8::Handle<v8::String> string, |
| - const Vector<v8::Handle<v8::String> >& vector) { |
| +static bool ContainsString(v8::Local<v8::Context> context, |
| + v8::Local<v8::String> string, |
| + const Vector<v8::Local<v8::String> >& vector) { |
| for (int i = 0; i < vector.length(); i++) { |
| - if (string->Equals(vector[i])) return true; |
| + if (string->Equals(context, vector[i]).FromJust()) return true; |
| } |
| return false; |
| } |
| -static void CheckChildrenNames(const v8::CpuProfileNode* node, |
| - const Vector<v8::Handle<v8::String> >& names) { |
| +static void CheckChildrenNames(v8::Local<v8::Context> context, |
| + const v8::CpuProfileNode* node, |
| + const Vector<v8::Local<v8::String> >& names) { |
|
vogelheim
2015/12/08 10:07:34
[Unrelated to your CL, so feel free to ignore:]
W
jochen (gone - plz use gerrit)
2015/12/08 10:09:50
as long as the vector doesn't outlive the handle s
|
| int count = node->GetChildrenCount(); |
| for (int i = 0; i < count; i++) { |
| - v8::Handle<v8::String> name = node->GetChild(i)->GetFunctionName(); |
| - if (!ContainsString(name, names)) { |
| + v8::Local<v8::String> name = node->GetChild(i)->GetFunctionName(); |
| + if (!ContainsString(context, name, names)) { |
| char buffer[100]; |
| i::SNPrintF(Vector<char>(buffer, arraysize(buffer)), |
| "Unexpected child '%s' found in '%s'", |
| @@ -467,7 +475,8 @@ static void CheckChildrenNames(const v8::CpuProfileNode* node, |
| // Check that there are no duplicates. |
| for (int j = 0; j < count; j++) { |
| if (j == i) continue; |
| - if (name->Equals(node->GetChild(j)->GetFunctionName())) { |
| + if (name->Equals(context, node->GetChild(j)->GetFunctionName()) |
| + .FromJust()) { |
| char buffer[100]; |
| i::SNPrintF(Vector<char>(buffer, arraysize(buffer)), |
| "Second child with the same name '%s' found in '%s'", |
| @@ -480,21 +489,25 @@ static void CheckChildrenNames(const v8::CpuProfileNode* node, |
| } |
| -static const v8::CpuProfileNode* FindChild(const v8::CpuProfileNode* node, |
| +static const v8::CpuProfileNode* FindChild(v8::Local<v8::Context> context, |
| + const v8::CpuProfileNode* node, |
| const char* name) { |
| int count = node->GetChildrenCount(); |
| - v8::Handle<v8::String> nameHandle = v8_str(name); |
| + v8::Local<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; |
| + if (nameHandle->Equals(context, child->GetFunctionName()).FromJust()) { |
| + return child; |
| + } |
| } |
| return NULL; |
| } |
| -static const v8::CpuProfileNode* GetChild(const v8::CpuProfileNode* node, |
| +static const v8::CpuProfileNode* GetChild(v8::Local<v8::Context> context, |
| + const v8::CpuProfileNode* node, |
| const char* name) { |
| - const v8::CpuProfileNode* result = FindChild(node, name); |
| + const v8::CpuProfileNode* result = FindChild(context, node, name); |
| if (!result) { |
| char buffer[100]; |
| i::SNPrintF(Vector<char>(buffer, arraysize(buffer)), |
| @@ -505,22 +518,24 @@ static const v8::CpuProfileNode* GetChild(const v8::CpuProfileNode* node, |
| } |
| -static void CheckSimpleBranch(const v8::CpuProfileNode* node, |
| +static void CheckSimpleBranch(v8::Local<v8::Context> context, |
| + const v8::CpuProfileNode* node, |
| const char* names[], int length) { |
| for (int i = 0; i < length; i++) { |
| const char* name = names[i]; |
| - node = GetChild(node, name); |
| + node = GetChild(context, node, name); |
| int expectedChildrenCount = (i == length - 1) ? 0 : 1; |
| CHECK_EQ(expectedChildrenCount, node->GetChildrenCount()); |
| } |
| } |
| -static const ProfileNode* GetSimpleBranch(v8::CpuProfile* profile, |
| +static const ProfileNode* GetSimpleBranch(v8::Local<v8::Context> context, |
| + v8::CpuProfile* profile, |
| const char* names[], int length) { |
| const v8::CpuProfileNode* node = profile->GetTopDownRoot(); |
| for (int i = 0; i < length; i++) { |
| - node = GetChild(node, names[i]); |
| + node = GetChild(context, node, names[i]); |
| } |
| return reinterpret_cast<const ProfileNode*>(node); |
| } |
| @@ -580,36 +595,36 @@ TEST(CollectCpuProfile) { |
| v8::HandleScope scope(env->GetIsolate()); |
| CompileRun(cpu_profiler_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t profiling_interval_ms = 200; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(env->GetIsolate(), profiling_interval_ms) |
| - }; |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(env->GetIsolate(), profiling_interval_ms)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 200); |
| - function->Call(env->Global(), arraysize(args), args); |
| + function->Call(env.local(), env->Global(), arraysize(args), args) |
| + .ToLocalChecked(); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env.local(), root, names); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = GetChild(env.local(), root, "start"); |
| CHECK_EQ(1, startNode->GetChildrenCount()); |
| - const v8::CpuProfileNode* fooNode = GetChild(startNode, "foo"); |
| + const v8::CpuProfileNode* fooNode = GetChild(env.local(), startNode, "foo"); |
| CHECK_EQ(3, fooNode->GetChildrenCount()); |
| const char* barBranch[] = { "bar", "delay", "loop" }; |
| - CheckSimpleBranch(fooNode, barBranch, arraysize(barBranch)); |
| + CheckSimpleBranch(env.local(), fooNode, barBranch, arraysize(barBranch)); |
| const char* bazBranch[] = { "baz", "delay", "loop" }; |
| - CheckSimpleBranch(fooNode, bazBranch, arraysize(bazBranch)); |
| + CheckSimpleBranch(env.local(), fooNode, bazBranch, arraysize(bazBranch)); |
| const char* delayBranch[] = { "delay", "loop" }; |
| - CheckSimpleBranch(fooNode, delayBranch, arraysize(delayBranch)); |
| + CheckSimpleBranch(env.local(), fooNode, delayBranch, arraysize(delayBranch)); |
| profile->Delete(); |
| } |
| @@ -648,28 +663,28 @@ TEST(HotDeoptNoFrameEntry) { |
| v8::HandleScope scope(env->GetIsolate()); |
| CompileRun(hot_deopt_no_frame_entry_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t profiling_interval_ms = 200; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(env->GetIsolate(), profiling_interval_ms) |
| - }; |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(env->GetIsolate(), profiling_interval_ms)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 200); |
| - function->Call(env->Global(), arraysize(args), args); |
| + function->Call(env.local(), env->Global(), arraysize(args), args) |
| + .ToLocalChecked(); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env.local(), root, names); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = GetChild(env.local(), root, "start"); |
| CHECK_EQ(1, startNode->GetChildrenCount()); |
| - GetChild(startNode, "foo"); |
| + GetChild(env.local(), startNode, "foo"); |
| profile->Delete(); |
| } |
| @@ -680,12 +695,11 @@ TEST(CollectCpuProfileSamples) { |
| v8::HandleScope scope(env->GetIsolate()); |
| CompileRun(cpu_profiler_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t profiling_interval_ms = 200; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(env->GetIsolate(), profiling_interval_ms) |
| - }; |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(env->GetIsolate(), profiling_interval_ms)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 200, true); |
| @@ -730,36 +744,36 @@ TEST(SampleWhenFrameIsNotSetup) { |
| v8::HandleScope scope(env->GetIsolate()); |
| CompileRun(cpu_profiler_test_source2); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t repeat_count = 100; |
| #if defined(USE_SIMULATOR) |
| // Simulators are much slower. |
| repeat_count = 1; |
| #endif |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(env->GetIsolate(), repeat_count) |
| - }; |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(env->GetIsolate(), repeat_count)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 100); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env.local(), root, names); |
| - const v8::CpuProfileNode* startNode = FindChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = FindChild(env.local(), root, "start"); |
| // On slow machines there may be no meaningfull samples at all, skip the |
| // check there. |
| if (startNode && startNode->GetChildrenCount() > 0) { |
| CHECK_EQ(1, startNode->GetChildrenCount()); |
| - const v8::CpuProfileNode* delayNode = GetChild(startNode, "delay"); |
| + const v8::CpuProfileNode* delayNode = |
| + GetChild(env.local(), startNode, "delay"); |
| if (delayNode->GetChildrenCount() > 0) { |
| CHECK_EQ(1, delayNode->GetChildrenCount()); |
| - GetChild(delayNode, "loop"); |
| + GetChild(env.local(), delayNode, "loop"); |
| } |
| } |
| @@ -842,22 +856,24 @@ TEST(NativeAccessorUninitializedIC) { |
| v8::External::New(isolate, &accessors); |
| 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_str("instance"), instance); |
| + v8::Local<v8::Function> func = |
| + func_template->GetFunction(env.local()).ToLocalChecked(); |
| + v8::Local<v8::Object> instance = |
| + func->NewInstance(env.local()).ToLocalChecked(); |
| + env->Global()->Set(env.local(), v8_str("instance"), instance).FromJust(); |
| CompileRun(native_accessor_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t repeat_count = 1; |
| - v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; |
| + v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 180); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| - GetChild(startNode, "get foo"); |
| - GetChild(startNode, "set foo"); |
| + const v8::CpuProfileNode* startNode = GetChild(env.local(), root, "start"); |
| + GetChild(env.local(), startNode, "get foo"); |
| + GetChild(env.local(), startNode, "set foo"); |
| profile->Delete(); |
| } |
| @@ -881,34 +897,36 @@ TEST(NativeAccessorMonomorphicIC) { |
| v8::External::New(isolate, &accessors); |
| 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_str("instance"), instance); |
| + v8::Local<v8::Function> func = |
| + func_template->GetFunction(env.local()).ToLocalChecked(); |
| + v8::Local<v8::Object> instance = |
| + func->NewInstance(env.local()).ToLocalChecked(); |
| + env->Global()->Set(env.local(), v8_str("instance"), instance).FromJust(); |
| CompileRun(native_accessor_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| { |
| // Make sure accessors ICs are in monomorphic state before starting |
| // profiling. |
| accessors.set_warming_up(true); |
| int32_t warm_up_iterations = 3; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(isolate, warm_up_iterations) |
| - }; |
| - function->Call(env->Global(), arraysize(args), args); |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(isolate, warm_up_iterations)}; |
| + function->Call(env.local(), env->Global(), arraysize(args), args) |
| + .ToLocalChecked(); |
| accessors.set_warming_up(false); |
| } |
| int32_t repeat_count = 100; |
| - v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; |
| + v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 200); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| - GetChild(startNode, "get foo"); |
| - GetChild(startNode, "set foo"); |
| + const v8::CpuProfileNode* startNode = GetChild(env.local(), root, "start"); |
| + GetChild(env.local(), startNode, "get foo"); |
| + GetChild(env.local(), startNode, "set foo"); |
| profile->Delete(); |
| } |
| @@ -942,21 +960,23 @@ TEST(NativeMethodUninitializedIC) { |
| 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_str("instance"), instance); |
| + v8::Local<v8::Function> func = |
| + func_template->GetFunction(env.local()).ToLocalChecked(); |
| + v8::Local<v8::Object> instance = |
| + func->NewInstance(env.local()).ToLocalChecked(); |
| + env->Global()->Set(env.local(), v8_str("instance"), instance).FromJust(); |
| CompileRun(native_method_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t repeat_count = 1; |
| - v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; |
| + v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 100); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| - GetChild(startNode, "fooMethod"); |
| + const v8::CpuProfileNode* startNode = GetChild(env.local(), root, "start"); |
| + GetChild(env.local(), startNode, "fooMethod"); |
| profile->Delete(); |
| } |
| @@ -983,33 +1003,35 @@ TEST(NativeMethodMonomorphicIC) { |
| 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_str("instance"), instance); |
| + v8::Local<v8::Function> func = |
| + func_template->GetFunction(env.local()).ToLocalChecked(); |
| + v8::Local<v8::Object> instance = |
| + func->NewInstance(env.local()).ToLocalChecked(); |
| + env->Global()->Set(env.local(), v8_str("instance"), instance).FromJust(); |
| CompileRun(native_method_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| { |
| // Make sure method ICs are in monomorphic state before starting |
| // profiling. |
| callbacks.set_warming_up(true); |
| int32_t warm_up_iterations = 3; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(isolate, warm_up_iterations) |
| - }; |
| - function->Call(env->Global(), arraysize(args), args); |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(isolate, warm_up_iterations)}; |
| + function->Call(env.local(), env->Global(), arraysize(args), args) |
| + .ToLocalChecked(); |
| callbacks.set_warming_up(false); |
| } |
| int32_t repeat_count = 100; |
| - v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; |
| + v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 100); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - GetChild(root, "start"); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| - GetChild(startNode, "fooMethod"); |
| + GetChild(env.local(), root, "start"); |
| + const v8::CpuProfileNode* startNode = GetChild(env.local(), root, "start"); |
| + GetChild(env.local(), startNode, "fooMethod"); |
| profile->Delete(); |
| } |
| @@ -1031,20 +1053,20 @@ TEST(BoundFunctionCall) { |
| v8::Context::Scope context_scope(env); |
| CompileRun(bound_function_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + 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); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| 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); |
| + CheckChildrenNames(env, root, names); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| - GetChild(startNode, "foo"); |
| + const v8::CpuProfileNode* startNode = GetChild(env, root, "start"); |
| + GetChild(env, startNode, "foo"); |
| profile->Delete(); |
| } |
| @@ -1077,7 +1099,7 @@ TEST(TickLines) { |
| CompileRun(script.start()); |
| i::Handle<i::JSFunction> func = i::Handle<i::JSFunction>::cast( |
| - v8::Utils::OpenHandle(*GetFunction(*env, func_name))); |
| + v8::Utils::OpenHandle(*GetFunction(env.local(), func_name))); |
| CHECK(func->shared()); |
| CHECK(func->shared()->code()); |
| i::Code* code = NULL; |
| @@ -1181,45 +1203,44 @@ TEST(FunctionCallSample) { |
| CcTest::heap()->CollectAllGarbage(); |
| CompileRun(call_function_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t duration_ms = 100; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(env->GetIsolate(), duration_ms) |
| - }; |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(env->GetIsolate(), duration_ms)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 100); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| { |
| - ScopedVector<v8::Handle<v8::String> > names(4); |
| + ScopedVector<v8::Local<v8::String> > names(4); |
| 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); |
| + CheckChildrenNames(env.local(), root, names); |
| } |
| // In case of GC stress tests all samples may be in GC phase and there |
| // won't be |start| node in the profiles. |
| bool is_gc_stress_testing = |
| (i::FLAG_gc_interval != -1) || i::FLAG_stress_compaction; |
| - const v8::CpuProfileNode* startNode = FindChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = FindChild(env.local(), root, "start"); |
| CHECK(is_gc_stress_testing || startNode); |
| if (startNode) { |
| - ScopedVector<v8::Handle<v8::String> > names(2); |
| + ScopedVector<v8::Local<v8::String> > names(2); |
| names[0] = v8_str("bar"); |
| names[1] = v8_str("call"); |
| - CheckChildrenNames(startNode, names); |
| + CheckChildrenNames(env.local(), startNode, names); |
| } |
| - const v8::CpuProfileNode* unresolvedNode = |
| - FindChild(root, i::ProfileGenerator::kUnresolvedFunctionName); |
| + const v8::CpuProfileNode* unresolvedNode = FindChild( |
| + env.local(), root, i::ProfileGenerator::kUnresolvedFunctionName); |
| if (unresolvedNode) { |
| - ScopedVector<v8::Handle<v8::String> > names(1); |
| + ScopedVector<v8::Local<v8::String> > names(1); |
| names[0] = v8_str("call"); |
| - CheckChildrenNames(unresolvedNode, names); |
| + CheckChildrenNames(env.local(), unresolvedNode, names); |
| } |
| profile->Delete(); |
| @@ -1257,52 +1278,53 @@ TEST(FunctionApplySample) { |
| v8::HandleScope scope(env->GetIsolate()); |
| CompileRun(function_apply_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + v8::Local<v8::Function> function = GetFunction(env.local(), "start"); |
| int32_t duration_ms = 100; |
| - v8::Handle<v8::Value> args[] = { |
| - v8::Integer::New(env->GetIsolate(), duration_ms) |
| - }; |
| + v8::Local<v8::Value> args[] = { |
| + v8::Integer::New(env->GetIsolate(), duration_ms)}; |
| v8::CpuProfile* profile = |
| RunProfiler(env.local(), function, args, arraysize(args), 100); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| { |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| 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); |
| + CheckChildrenNames(env.local(), root, names); |
| } |
| - const v8::CpuProfileNode* startNode = FindChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = FindChild(env.local(), root, "start"); |
| if (startNode) { |
| { |
| - ScopedVector<v8::Handle<v8::String> > names(2); |
| + ScopedVector<v8::Local<v8::String> > names(2); |
| names[0] = v8_str("test"); |
| names[1] = v8_str(ProfileGenerator::kUnresolvedFunctionName); |
| - CheckChildrenNames(startNode, names); |
| + CheckChildrenNames(env.local(), startNode, names); |
| } |
| - const v8::CpuProfileNode* testNode = FindChild(startNode, "test"); |
| + const v8::CpuProfileNode* testNode = |
| + FindChild(env.local(), startNode, "test"); |
| if (testNode) { |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| 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_str("get length"); |
| - CheckChildrenNames(testNode, names); |
| + CheckChildrenNames(env.local(), testNode, names); |
| } |
| if (const v8::CpuProfileNode* unresolvedNode = |
| - FindChild(startNode, ProfileGenerator::kUnresolvedFunctionName)) { |
| - ScopedVector<v8::Handle<v8::String> > names(1); |
| + FindChild(env.local(), startNode, |
| + ProfileGenerator::kUnresolvedFunctionName)) { |
| + ScopedVector<v8::Local<v8::String> > names(1); |
| names[0] = v8_str("apply"); |
| - CheckChildrenNames(unresolvedNode, names); |
| - GetChild(unresolvedNode, "apply"); |
| + CheckChildrenNames(env.local(), unresolvedNode, names); |
| + GetChild(env.local(), unresolvedNode, "apply"); |
| } |
| } |
| @@ -1339,11 +1361,11 @@ TEST(CpuProfileDeepStack) { |
| v8::Context::Scope context_scope(env); |
| CompileRun(cpu_profiler_deep_stack_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + 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->Global(), 0, NULL); |
| + function->Call(env, env->Global(), 0, NULL).ToLocalChecked(); |
| v8::CpuProfile* profile = cpu_profiler->StopProfiling(profile_name); |
| CHECK(profile); |
| // Dump collected profile to have a better diagnostic in case of failure. |
| @@ -1351,16 +1373,16 @@ TEST(CpuProfileDeepStack) { |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| { |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env, root, names); |
| } |
| - const v8::CpuProfileNode* node = GetChild(root, "start"); |
| + const v8::CpuProfileNode* node = GetChild(env, root, "start"); |
| for (int i = 0; i < 250; ++i) { |
| - node = GetChild(node, "foo"); |
| + node = GetChild(env, node, "foo"); |
| } |
| // TODO(alph): |
| // In theory there must be one more 'foo' and a 'startProfiling' nodes, |
| @@ -1384,9 +1406,11 @@ static const char* js_native_js_test_source = |
| "}"; |
| static void CallJsFunction(const v8::FunctionCallbackInfo<v8::Value>& info) { |
| - v8::Handle<v8::Function> function = info[0].As<v8::Function>(); |
| - v8::Handle<v8::Value> argv[] = { info[1] }; |
| - function->Call(info.This(), arraysize(argv), argv); |
| + v8::Local<v8::Function> function = info[0].As<v8::Function>(); |
| + v8::Local<v8::Value> argv[] = {info[1]}; |
| + function->Call(info.GetIsolate()->GetCurrentContext(), info.This(), |
| + arraysize(argv), argv) |
| + .ToLocalChecked(); |
| } |
| @@ -1404,34 +1428,35 @@ TEST(JsNativeJsSample) { |
| v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( |
| env->GetIsolate(), CallJsFunction); |
| - v8::Local<v8::Function> func = func_template->GetFunction(); |
| + v8::Local<v8::Function> func = |
| + func_template->GetFunction(env).ToLocalChecked(); |
| func->SetName(v8_str("CallJsFunction")); |
| - env->Global()->Set(v8_str("CallJsFunction"), func); |
| + env->Global()->Set(env, v8_str("CallJsFunction"), func).FromJust(); |
| CompileRun(js_native_js_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + 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); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env, root, names); |
| } |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = GetChild(env, root, "start"); |
| CHECK_EQ(1, startNode->GetChildrenCount()); |
| const v8::CpuProfileNode* nativeFunctionNode = |
| - GetChild(startNode, "CallJsFunction"); |
| + GetChild(env, startNode, "CallJsFunction"); |
| CHECK_EQ(1, nativeFunctionNode->GetChildrenCount()); |
| - const v8::CpuProfileNode* barNode = GetChild(nativeFunctionNode, "bar"); |
| + const v8::CpuProfileNode* barNode = GetChild(env, nativeFunctionNode, "bar"); |
| CHECK_EQ(1, barNode->GetChildrenCount()); |
| - GetChild(barNode, "foo"); |
| + GetChild(env, barNode, "foo"); |
| profile->Delete(); |
| } |
| @@ -1466,36 +1491,37 @@ TEST(JsNativeJsRuntimeJsSample) { |
| v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( |
| env->GetIsolate(), CallJsFunction); |
| - v8::Local<v8::Function> func = func_template->GetFunction(); |
| + v8::Local<v8::Function> func = |
| + func_template->GetFunction(env).ToLocalChecked(); |
| func->SetName(v8_str("CallJsFunction")); |
| - env->Global()->Set(v8_str("CallJsFunction"), func); |
| + env->Global()->Set(env, v8_str("CallJsFunction"), func).FromJust(); |
| CompileRun(js_native_js_runtime_js_test_source); |
| - v8::Local<v8::Function> function = GetFunction(*env, "start"); |
| + 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); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env, root, names); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = GetChild(env, root, "start"); |
| CHECK_EQ(1, startNode->GetChildrenCount()); |
| const v8::CpuProfileNode* nativeFunctionNode = |
| - GetChild(startNode, "CallJsFunction"); |
| + GetChild(env, startNode, "CallJsFunction"); |
| CHECK_EQ(1, nativeFunctionNode->GetChildrenCount()); |
| - const v8::CpuProfileNode* barNode = GetChild(nativeFunctionNode, "bar"); |
| + const v8::CpuProfileNode* barNode = GetChild(env, nativeFunctionNode, "bar"); |
| // The child is in fact a bound foo. |
| // A bound function has a wrapper that may make calls to |
| // other functions e.g. "get length". |
| CHECK_LE(1, barNode->GetChildrenCount()); |
| CHECK_GE(2, barNode->GetChildrenCount()); |
| - GetChild(barNode, "foo"); |
| + GetChild(env, barNode, "foo"); |
| profile->Delete(); |
| } |
| @@ -1538,40 +1564,44 @@ TEST(JsNative1JsNative2JsSample) { |
| v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( |
| env->GetIsolate(), CallJsFunction); |
| - v8::Local<v8::Function> func1 = func_template->GetFunction(); |
| + v8::Local<v8::Function> func1 = |
| + func_template->GetFunction(env).ToLocalChecked(); |
| func1->SetName(v8_str("CallJsFunction1")); |
| - env->Global()->Set(v8_str("CallJsFunction1"), func1); |
| + env->Global()->Set(env, v8_str("CallJsFunction1"), func1).FromJust(); |
| - v8::Local<v8::Function> func2 = v8::FunctionTemplate::New( |
| - env->GetIsolate(), CallJsFunction2)->GetFunction(); |
| + v8::Local<v8::Function> func2 = |
| + v8::FunctionTemplate::New(env->GetIsolate(), CallJsFunction2) |
| + ->GetFunction(env) |
| + .ToLocalChecked(); |
| func2->SetName(v8_str("CallJsFunction2")); |
| - env->Global()->Set(v8_str("CallJsFunction2"), func2); |
| + 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::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); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str("start"); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env, root, names); |
| - const v8::CpuProfileNode* startNode = GetChild(root, "start"); |
| + const v8::CpuProfileNode* startNode = GetChild(env, root, "start"); |
| CHECK_EQ(1, startNode->GetChildrenCount()); |
| const v8::CpuProfileNode* nativeNode1 = |
| - GetChild(startNode, "CallJsFunction1"); |
| + GetChild(env, startNode, "CallJsFunction1"); |
| CHECK_EQ(1, nativeNode1->GetChildrenCount()); |
| - const v8::CpuProfileNode* barNode = GetChild(nativeNode1, "bar"); |
| + const v8::CpuProfileNode* barNode = GetChild(env, nativeNode1, "bar"); |
| CHECK_EQ(1, barNode->GetChildrenCount()); |
| - const v8::CpuProfileNode* nativeNode2 = GetChild(barNode, "CallJsFunction2"); |
| + const v8::CpuProfileNode* nativeNode2 = |
| + GetChild(env, barNode, "CallJsFunction2"); |
| CHECK_EQ(1, nativeNode2->GetChildrenCount()); |
| - GetChild(nativeNode2, "foo"); |
| + GetChild(env, nativeNode2, "foo"); |
| profile->Delete(); |
| } |
| @@ -1609,19 +1639,19 @@ TEST(IdleTime) { |
| reinterpret_cast<i::CpuProfile*>(profile)->Print(); |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - ScopedVector<v8::Handle<v8::String> > names(3); |
| + ScopedVector<v8::Local<v8::String> > names(3); |
| names[0] = v8_str(ProfileGenerator::kGarbageCollectorEntryName); |
| names[1] = v8_str(ProfileGenerator::kProgramEntryName); |
| names[2] = v8_str(ProfileGenerator::kIdleEntryName); |
| - CheckChildrenNames(root, names); |
| + CheckChildrenNames(env.local(), root, names); |
| const v8::CpuProfileNode* programNode = |
| - GetChild(root, ProfileGenerator::kProgramEntryName); |
| + GetChild(env.local(), root, ProfileGenerator::kProgramEntryName); |
| CHECK_EQ(0, programNode->GetChildrenCount()); |
| CHECK_GE(programNode->GetHitCount(), 3u); |
| const v8::CpuProfileNode* idleNode = |
| - GetChild(root, ProfileGenerator::kIdleEntryName); |
| + GetChild(env.local(), root, ProfileGenerator::kIdleEntryName); |
| CHECK_EQ(0, idleNode->GetChildrenCount()); |
| CHECK_GE(idleNode->GetHitCount(), 3u); |
| @@ -1633,8 +1663,11 @@ 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_str(name)->Equals(node->GetFunctionName())); |
| - CHECK(v8_str(script_name)->Equals(node->GetScriptResourceName())); |
| + v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
| + CHECK(v8_str(name)->Equals(context, node->GetFunctionName()).FromJust()); |
| + CHECK(v8_str(script_name) |
| + ->Equals(context, node->GetScriptResourceName()) |
| + .FromJust()); |
| CHECK_EQ(script_id, node->GetScriptId()); |
| CHECK_EQ(line, node->GetLineNumber()); |
| CHECK_EQ(column, node->GetColumnNumber()); |
| @@ -1646,17 +1679,17 @@ TEST(FunctionDetails) { |
| v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION); |
| v8::Context::Scope context_scope(env); |
| - v8::Handle<v8::Script> script_a = CompileWithOrigin( |
| - " function foo\n() { try { bar(); } catch(e) {} }\n" |
| - " function bar() { startProfiling(); }\n", |
| - "script_a"); |
| - script_a->Run(); |
| - v8::Handle<v8::Script> script_b = CompileWithOrigin( |
| - "\n\n function baz() { try { foo(); } catch(e) {} }\n" |
| - "\n\nbaz();\n" |
| - "stopProfiling();\n", |
| - "script_b"); |
| - script_b->Run(); |
| + v8::Local<v8::Script> script_a = CompileWithOrigin( |
| + " function foo\n() { try { bar(); } catch(e) {} }\n" |
| + " function bar() { startProfiling(); }\n", |
| + "script_a"); |
| + script_a->Run(env).ToLocalChecked(); |
| + v8::Local<v8::Script> script_b = CompileWithOrigin( |
| + "\n\n function baz() { try { foo(); } catch(e) {} }\n" |
| + "\n\nbaz();\n" |
| + "stopProfiling();\n", |
| + "script_b"); |
| + script_b->Run(env).ToLocalChecked(); |
| const v8::CpuProfile* profile = i::ProfilerExtension::last_profile; |
| const v8::CpuProfileNode* current = profile->GetTopDownRoot(); |
| reinterpret_cast<ProfileNode*>( |
| @@ -1668,16 +1701,16 @@ TEST(FunctionDetails) { |
| // 0 foo 18 #4 TryCatchStatement script_a:2 |
| // 1 bar 18 #5 no reason script_a:3 |
| const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| - const v8::CpuProfileNode* script = GetChild(root, ""); |
| + const v8::CpuProfileNode* script = GetChild(env, root, ""); |
| CheckFunctionDetails(env->GetIsolate(), script, "", "script_b", |
| script_b->GetUnboundScript()->GetId(), 1, 1); |
| - const v8::CpuProfileNode* baz = GetChild(script, "baz"); |
| + const v8::CpuProfileNode* baz = GetChild(env, script, "baz"); |
| CheckFunctionDetails(env->GetIsolate(), baz, "baz", "script_b", |
| script_b->GetUnboundScript()->GetId(), 3, 16); |
| - const v8::CpuProfileNode* foo = GetChild(baz, "foo"); |
| + const v8::CpuProfileNode* foo = GetChild(env, baz, "foo"); |
| CheckFunctionDetails(env->GetIsolate(), foo, "foo", "script_a", |
| script_a->GetUnboundScript()->GetId(), 2, 1); |
| - const v8::CpuProfileNode* bar = GetChild(foo, "bar"); |
| + const v8::CpuProfileNode* bar = GetChild(env, foo, "bar"); |
| CheckFunctionDetails(env->GetIsolate(), bar, "bar", "script_a", |
| script_a->GetUnboundScript()->GetId(), 3, 14); |
| } |
| @@ -1692,11 +1725,11 @@ TEST(DontStopOnFinishedProfileDelete) { |
| i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler); |
| CHECK_EQ(0, iprofiler->GetProfilesCount()); |
| - v8::Handle<v8::String> outer = v8_str("outer"); |
| + v8::Local<v8::String> outer = v8_str("outer"); |
| profiler->StartProfiling(outer); |
| CHECK_EQ(0, iprofiler->GetProfilesCount()); |
| - v8::Handle<v8::String> inner = v8_str("inner"); |
| + v8::Local<v8::String> inner = v8_str("inner"); |
| profiler->StartProfiling(inner); |
| CHECK_EQ(0, iprofiler->GetProfilesCount()); |
| @@ -1716,11 +1749,12 @@ TEST(DontStopOnFinishedProfileDelete) { |
| } |
| -const char* GetBranchDeoptReason(i::CpuProfile* iprofile, const char* branch[], |
| +const char* GetBranchDeoptReason(v8::Local<v8::Context> context, |
| + i::CpuProfile* iprofile, const char* branch[], |
| int length) { |
| v8::CpuProfile* profile = reinterpret_cast<v8::CpuProfile*>(iprofile); |
| const ProfileNode* iopt_function = NULL; |
| - iopt_function = GetSimpleBranch(profile, branch, length); |
| + iopt_function = GetSimpleBranch(context, profile, branch, length); |
| CHECK_EQ(1U, iopt_function->deopt_infos().size()); |
| return iopt_function->deopt_infos()[0].deopt_reason; |
| } |
| @@ -1748,7 +1782,10 @@ TEST(CollectDeoptEvents) { |
| for (int i = 0; i < 3; ++i) { |
| i::EmbeddedVector<char, sizeof(opt_source) + 100> buffer; |
| i::SNPrintF(buffer, opt_source, i, i); |
| - v8::Script::Compile(v8_str(buffer.start()))->Run(); |
| + v8::Script::Compile(env, v8_str(buffer.start())) |
| + .ToLocalChecked() |
| + ->Run(env) |
| + .ToLocalChecked(); |
| } |
| const char* source = |
| @@ -1781,7 +1818,10 @@ TEST(CollectDeoptEvents) { |
| "stopProfiling();\n" |
| "\n"; |
| - v8::Script::Compile(v8_str(source))->Run(); |
| + v8::Script::Compile(env, v8_str(source)) |
| + .ToLocalChecked() |
| + ->Run(env) |
| + .ToLocalChecked(); |
| i::CpuProfile* iprofile = iprofiler->GetProfile(0); |
| iprofile->Print(); |
| /* The expected profile |
| @@ -1805,12 +1845,12 @@ TEST(CollectDeoptEvents) { |
| { |
| const char* branch[] = {"", "opt_function0", "opt_function0"}; |
| CHECK_EQ(reason(i::Deoptimizer::kNotAHeapNumber), |
| - GetBranchDeoptReason(iprofile, branch, arraysize(branch))); |
| + GetBranchDeoptReason(env, iprofile, branch, arraysize(branch))); |
| } |
| { |
| const char* branch[] = {"", "opt_function1", "opt_function1"}; |
| const char* deopt_reason = |
| - GetBranchDeoptReason(iprofile, branch, arraysize(branch)); |
| + GetBranchDeoptReason(env, iprofile, branch, arraysize(branch)); |
| if (deopt_reason != reason(i::Deoptimizer::kNaN) && |
| deopt_reason != reason(i::Deoptimizer::kLostPrecisionOrNaN)) { |
| FATAL(deopt_reason); |
| @@ -1819,7 +1859,7 @@ TEST(CollectDeoptEvents) { |
| { |
| const char* branch[] = {"", "opt_function2", "opt_function2"}; |
| CHECK_EQ(reason(i::Deoptimizer::kDivisionByZero), |
| - GetBranchDeoptReason(iprofile, branch, arraysize(branch))); |
| + GetBranchDeoptReason(env, iprofile, branch, arraysize(branch))); |
| } |
| iprofiler->DeleteProfile(iprofile); |
| } |
| @@ -1837,7 +1877,10 @@ TEST(SourceLocation) { |
| "}\n" |
| "CompareStatementWithThis();\n"; |
| - v8::Script::Compile(v8_str(source))->Run(); |
| + v8::Script::Compile(env.local(), v8_str(source)) |
| + .ToLocalChecked() |
| + ->Run(env.local()) |
| + .ToLocalChecked(); |
| } |
| @@ -1875,12 +1918,12 @@ TEST(DeoptAtFirstLevelInlinedSource) { |
| "stopProfiling();\n" |
| "\n"; |
| - v8::Handle<v8::Script> inlined_script = v8_compile(inlined_source); |
| - inlined_script->Run(); |
| + v8::Local<v8::Script> inlined_script = v8_compile(inlined_source); |
| + inlined_script->Run(env).ToLocalChecked(); |
| int inlined_script_id = inlined_script->GetUnboundScript()->GetId(); |
| - v8::Handle<v8::Script> script = v8_compile(source); |
| - script->Run(); |
| + v8::Local<v8::Script> script = v8_compile(source); |
| + script->Run(env).ToLocalChecked(); |
| int script_id = script->GetUnboundScript()->GetId(); |
| i::CpuProfile* iprofile = iprofiler->GetProfile(0); |
| @@ -1899,7 +1942,7 @@ TEST(DeoptAtFirstLevelInlinedSource) { |
| const char* branch[] = {"", "test"}; |
| const ProfileNode* itest_node = |
| - GetSimpleBranch(profile, branch, arraysize(branch)); |
| + GetSimpleBranch(env, profile, branch, arraysize(branch)); |
| const std::vector<v8::CpuProfileDeoptInfo>& deopt_infos = |
| itest_node->deopt_infos(); |
| CHECK_EQ(1U, deopt_infos.size()); |
| @@ -1945,12 +1988,12 @@ TEST(DeoptAtSecondLevelInlinedSource) { |
| "stopProfiling();\n" |
| "\n"; |
| - v8::Handle<v8::Script> inlined_script = v8_compile(inlined_source); |
| - inlined_script->Run(); |
| + v8::Local<v8::Script> inlined_script = v8_compile(inlined_source); |
| + inlined_script->Run(env).ToLocalChecked(); |
| int inlined_script_id = inlined_script->GetUnboundScript()->GetId(); |
| - v8::Handle<v8::Script> script = v8_compile(source); |
| - script->Run(); |
| + v8::Local<v8::Script> script = v8_compile(source); |
| + script->Run(env).ToLocalChecked(); |
| int script_id = script->GetUnboundScript()->GetId(); |
| i::CpuProfile* iprofile = iprofiler->GetProfile(0); |
| @@ -1972,7 +2015,7 @@ TEST(DeoptAtSecondLevelInlinedSource) { |
| const char* branch[] = {"", "test1"}; |
| const ProfileNode* itest_node = |
| - GetSimpleBranch(profile, branch, arraysize(branch)); |
| + GetSimpleBranch(env, profile, branch, arraysize(branch)); |
| const std::vector<v8::CpuProfileDeoptInfo>& deopt_infos = |
| itest_node->deopt_infos(); |
| CHECK_EQ(1U, deopt_infos.size()); |
| @@ -2018,11 +2061,11 @@ TEST(DeoptUntrackedFunction) { |
| "stopProfiling();\n" |
| "\n"; |
| - v8::Handle<v8::Script> inlined_script = v8_compile(inlined_source); |
| - inlined_script->Run(); |
| + v8::Local<v8::Script> inlined_script = v8_compile(inlined_source); |
| + inlined_script->Run(env).ToLocalChecked(); |
| - v8::Handle<v8::Script> script = v8_compile(source); |
| - script->Run(); |
| + v8::Local<v8::Script> script = v8_compile(source); |
| + script->Run(env).ToLocalChecked(); |
| i::CpuProfile* iprofile = iprofiler->GetProfile(0); |
| iprofile->Print(); |
| @@ -2030,7 +2073,7 @@ TEST(DeoptUntrackedFunction) { |
| const char* branch[] = {"", "test"}; |
| const ProfileNode* itest_node = |
| - GetSimpleBranch(profile, branch, arraysize(branch)); |
| + GetSimpleBranch(env, profile, branch, arraysize(branch)); |
| CHECK_EQ(0U, itest_node->deopt_infos().size()); |
| iprofiler->DeleteProfile(iprofile); |