Upgrade V8 to version 4.9.385.28

https://chromium.googlesource.com/v8/v8/+/4.9.385.28

FPIIM-449

Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/test/cctest/test-profile-generator.cc b/test/cctest/test-profile-generator.cc
index 7578b35..82c0f30 100644
--- a/test/cctest/test-profile-generator.cc
+++ b/test/cctest/test-profile-generator.cc
@@ -30,8 +30,8 @@
 #include "src/v8.h"
 
 #include "include/v8-profiler.h"
-#include "src/cpu-profiler.h"
-#include "src/profile-generator-inl.h"
+#include "src/profiler/cpu-profiler.h"
+#include "src/profiler/profile-generator-inl.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/profiler-extension.h"
 
@@ -48,21 +48,22 @@
 
 
 TEST(ProfileNodeFindOrAddChild) {
-  ProfileTree tree;
+  CcTest::InitializeVM();
+  ProfileTree tree(CcTest::i_isolate());
   ProfileNode* node = tree.root();
   CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
   ProfileNode* childNode1 = node->FindOrAddChild(&entry1);
-  CHECK_NE(NULL, childNode1);
+  CHECK(childNode1);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
   CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
   ProfileNode* childNode2 = node->FindOrAddChild(&entry2);
-  CHECK_NE(NULL, childNode2);
+  CHECK(childNode2);
   CHECK_NE(childNode1, childNode2);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
   CHECK_EQ(childNode2, node->FindOrAddChild(&entry2));
   CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
   ProfileNode* childNode3 = node->FindOrAddChild(&entry3);
-  CHECK_NE(NULL, childNode3);
+  CHECK(childNode3);
   CHECK_NE(childNode1, childNode3);
   CHECK_NE(childNode2, childNode3);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
@@ -72,12 +73,13 @@
 
 
 TEST(ProfileNodeFindOrAddChildForSameFunction) {
+  CcTest::InitializeVM();
   const char* aaa = "aaa";
-  ProfileTree tree;
+  ProfileTree tree(CcTest::i_isolate());
   ProfileNode* node = tree.root();
   CodeEntry entry1(i::Logger::FUNCTION_TAG, aaa);
   ProfileNode* childNode1 = node->FindOrAddChild(&entry1);
-  CHECK_NE(NULL, childNode1);
+  CHECK(childNode1);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
   // The same function again.
   CodeEntry entry2(i::Logger::FUNCTION_TAG, aaa);
@@ -117,168 +119,112 @@
 
 }  // namespace
 
-TEST(ProfileTreeAddPathFromStart) {
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
-  ProfileTree tree;
-  ProfileTreeTestHelper helper(&tree);
-  CHECK_EQ(NULL, helper.Walk(&entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry3));
-
-  CodeEntry* path[] = {NULL, &entry1, NULL, &entry2, NULL, NULL, &entry3, NULL};
-  Vector<CodeEntry*> path_vec(path, sizeof(path) / sizeof(path[0]));
-  tree.AddPathFromStart(path_vec);
-  CHECK_EQ(NULL, helper.Walk(&entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry3));
-  ProfileNode* node1 = helper.Walk(&entry1);
-  CHECK_NE(NULL, node1);
-  CHECK_EQ(0, node1->self_ticks());
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
-  ProfileNode* node2 = helper.Walk(&entry1, &entry2);
-  CHECK_NE(NULL, node2);
-  CHECK_NE(node1, node2);
-  CHECK_EQ(0, node2->self_ticks());
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry2));
-  ProfileNode* node3 = helper.Walk(&entry1, &entry2, &entry3);
-  CHECK_NE(NULL, node3);
-  CHECK_NE(node1, node3);
-  CHECK_NE(node2, node3);
-  CHECK_EQ(1, node3->self_ticks());
-
-  tree.AddPathFromStart(path_vec);
-  CHECK_EQ(node1, helper.Walk(&entry1));
-  CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
-  CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
-  CHECK_EQ(0, node1->self_ticks());
-  CHECK_EQ(0, node2->self_ticks());
-  CHECK_EQ(2, node3->self_ticks());
-
-  CodeEntry* path2[] = {&entry1, &entry2, &entry2};
-  Vector<CodeEntry*> path2_vec(path2, sizeof(path2) / sizeof(path2[0]));
-  tree.AddPathFromStart(path2_vec);
-  CHECK_EQ(NULL, helper.Walk(&entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry3));
-  CHECK_EQ(node1, helper.Walk(&entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
-  CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
-  CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
-  CHECK_EQ(2, node3->self_ticks());
-  ProfileNode* node4 = helper.Walk(&entry1, &entry2, &entry2);
-  CHECK_NE(NULL, node4);
-  CHECK_NE(node3, node4);
-  CHECK_EQ(1, node4->self_ticks());
-}
-
 
 TEST(ProfileTreeAddPathFromEnd) {
+  CcTest::InitializeVM();
   CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
   CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
   CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
-  ProfileTree tree;
+  ProfileTree tree(CcTest::i_isolate());
   ProfileTreeTestHelper helper(&tree);
-  CHECK_EQ(NULL, helper.Walk(&entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry3));
+  CHECK(!helper.Walk(&entry1));
+  CHECK(!helper.Walk(&entry2));
+  CHECK(!helper.Walk(&entry3));
 
   CodeEntry* path[] = {NULL, &entry3, NULL, &entry2, NULL, NULL, &entry1, NULL};
   Vector<CodeEntry*> path_vec(path, sizeof(path) / sizeof(path[0]));
   tree.AddPathFromEnd(path_vec);
-  CHECK_EQ(NULL, helper.Walk(&entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry3));
+  CHECK(!helper.Walk(&entry2));
+  CHECK(!helper.Walk(&entry3));
   ProfileNode* node1 = helper.Walk(&entry1);
-  CHECK_NE(NULL, node1);
-  CHECK_EQ(0, node1->self_ticks());
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
+  CHECK(node1);
+  CHECK_EQ(0u, node1->self_ticks());
+  CHECK(!helper.Walk(&entry1, &entry1));
+  CHECK(!helper.Walk(&entry1, &entry3));
   ProfileNode* node2 = helper.Walk(&entry1, &entry2);
-  CHECK_NE(NULL, node2);
+  CHECK(node2);
   CHECK_NE(node1, node2);
-  CHECK_EQ(0, node2->self_ticks());
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry2));
+  CHECK_EQ(0u, node2->self_ticks());
+  CHECK(!helper.Walk(&entry1, &entry2, &entry1));
+  CHECK(!helper.Walk(&entry1, &entry2, &entry2));
   ProfileNode* node3 = helper.Walk(&entry1, &entry2, &entry3);
-  CHECK_NE(NULL, node3);
+  CHECK(node3);
   CHECK_NE(node1, node3);
   CHECK_NE(node2, node3);
-  CHECK_EQ(1, node3->self_ticks());
+  CHECK_EQ(1u, node3->self_ticks());
 
   tree.AddPathFromEnd(path_vec);
   CHECK_EQ(node1, helper.Walk(&entry1));
   CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
   CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
-  CHECK_EQ(0, node1->self_ticks());
-  CHECK_EQ(0, node2->self_ticks());
-  CHECK_EQ(2, node3->self_ticks());
+  CHECK_EQ(0u, node1->self_ticks());
+  CHECK_EQ(0u, node2->self_ticks());
+  CHECK_EQ(2u, node3->self_ticks());
 
   CodeEntry* path2[] = {&entry2, &entry2, &entry1};
   Vector<CodeEntry*> path2_vec(path2, sizeof(path2) / sizeof(path2[0]));
   tree.AddPathFromEnd(path2_vec);
-  CHECK_EQ(NULL, helper.Walk(&entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry3));
+  CHECK(!helper.Walk(&entry2));
+  CHECK(!helper.Walk(&entry3));
   CHECK_EQ(node1, helper.Walk(&entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
+  CHECK(!helper.Walk(&entry1, &entry1));
+  CHECK(!helper.Walk(&entry1, &entry3));
   CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
-  CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
+  CHECK(!helper.Walk(&entry1, &entry2, &entry1));
   CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
-  CHECK_EQ(2, node3->self_ticks());
+  CHECK_EQ(2u, node3->self_ticks());
   ProfileNode* node4 = helper.Walk(&entry1, &entry2, &entry2);
-  CHECK_NE(NULL, node4);
+  CHECK(node4);
   CHECK_NE(node3, node4);
-  CHECK_EQ(1, node4->self_ticks());
+  CHECK_EQ(1u, node4->self_ticks());
 }
 
 
 TEST(ProfileTreeCalculateTotalTicks) {
-  ProfileTree empty_tree;
-  CHECK_EQ(0, empty_tree.root()->self_ticks());
+  CcTest::InitializeVM();
+  ProfileTree empty_tree(CcTest::i_isolate());
+  CHECK_EQ(0u, empty_tree.root()->self_ticks());
   empty_tree.root()->IncrementSelfTicks();
-  CHECK_EQ(1, empty_tree.root()->self_ticks());
+  CHECK_EQ(1u, empty_tree.root()->self_ticks());
 
   CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
   CodeEntry* e1_path[] = {&entry1};
   Vector<CodeEntry*> e1_path_vec(
       e1_path, sizeof(e1_path) / sizeof(e1_path[0]));
 
-  ProfileTree single_child_tree;
-  single_child_tree.AddPathFromStart(e1_path_vec);
+  ProfileTree single_child_tree(CcTest::i_isolate());
+  single_child_tree.AddPathFromEnd(e1_path_vec);
   single_child_tree.root()->IncrementSelfTicks();
-  CHECK_EQ(1, single_child_tree.root()->self_ticks());
+  CHECK_EQ(1u, single_child_tree.root()->self_ticks());
   ProfileTreeTestHelper single_child_helper(&single_child_tree);
   ProfileNode* node1 = single_child_helper.Walk(&entry1);
-  CHECK_NE(NULL, node1);
-  CHECK_EQ(1, single_child_tree.root()->self_ticks());
-  CHECK_EQ(1, node1->self_ticks());
+  CHECK(node1);
+  CHECK_EQ(1u, single_child_tree.root()->self_ticks());
+  CHECK_EQ(1u, node1->self_ticks());
 
   CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
-  CodeEntry* e1_e2_path[] = {&entry1, &entry2};
-  Vector<CodeEntry*> e1_e2_path_vec(
-      e1_e2_path, sizeof(e1_e2_path) / sizeof(e1_e2_path[0]));
+  CodeEntry* e2_e1_path[] = {&entry2, &entry1};
+  Vector<CodeEntry*> e2_e1_path_vec(e2_e1_path,
+                                    sizeof(e2_e1_path) / sizeof(e2_e1_path[0]));
 
-  ProfileTree flat_tree;
+  ProfileTree flat_tree(CcTest::i_isolate());
   ProfileTreeTestHelper flat_helper(&flat_tree);
-  flat_tree.AddPathFromStart(e1_path_vec);
-  flat_tree.AddPathFromStart(e1_path_vec);
-  flat_tree.AddPathFromStart(e1_e2_path_vec);
-  flat_tree.AddPathFromStart(e1_e2_path_vec);
-  flat_tree.AddPathFromStart(e1_e2_path_vec);
+  flat_tree.AddPathFromEnd(e1_path_vec);
+  flat_tree.AddPathFromEnd(e1_path_vec);
+  flat_tree.AddPathFromEnd(e2_e1_path_vec);
+  flat_tree.AddPathFromEnd(e2_e1_path_vec);
+  flat_tree.AddPathFromEnd(e2_e1_path_vec);
   // Results in {root,0,0} -> {entry1,0,2} -> {entry2,0,3}
-  CHECK_EQ(0, flat_tree.root()->self_ticks());
+  CHECK_EQ(0u, flat_tree.root()->self_ticks());
   node1 = flat_helper.Walk(&entry1);
-  CHECK_NE(NULL, node1);
-  CHECK_EQ(2, node1->self_ticks());
+  CHECK(node1);
+  CHECK_EQ(2u, node1->self_ticks());
   ProfileNode* node2 = flat_helper.Walk(&entry1, &entry2);
-  CHECK_NE(NULL, node2);
-  CHECK_EQ(3, node2->self_ticks());
+  CHECK(node2);
+  CHECK_EQ(3u, node2->self_ticks());
   // Must calculate {root,5,0} -> {entry1,5,2} -> {entry2,3,3}
-  CHECK_EQ(0, flat_tree.root()->self_ticks());
-  CHECK_EQ(2, node1->self_ticks());
+  CHECK_EQ(0u, flat_tree.root()->self_ticks());
+  CHECK_EQ(2u, node1->self_ticks());
 
   CodeEntry* e2_path[] = {&entry2};
   Vector<CodeEntry*> e2_path_vec(
@@ -288,42 +234,42 @@
   Vector<CodeEntry*> e3_path_vec(
       e3_path, sizeof(e3_path) / sizeof(e3_path[0]));
 
-  ProfileTree wide_tree;
+  ProfileTree wide_tree(CcTest::i_isolate());
   ProfileTreeTestHelper wide_helper(&wide_tree);
-  wide_tree.AddPathFromStart(e1_path_vec);
-  wide_tree.AddPathFromStart(e1_path_vec);
-  wide_tree.AddPathFromStart(e1_e2_path_vec);
-  wide_tree.AddPathFromStart(e2_path_vec);
-  wide_tree.AddPathFromStart(e2_path_vec);
-  wide_tree.AddPathFromStart(e2_path_vec);
-  wide_tree.AddPathFromStart(e3_path_vec);
-  wide_tree.AddPathFromStart(e3_path_vec);
-  wide_tree.AddPathFromStart(e3_path_vec);
-  wide_tree.AddPathFromStart(e3_path_vec);
+  wide_tree.AddPathFromEnd(e1_path_vec);
+  wide_tree.AddPathFromEnd(e1_path_vec);
+  wide_tree.AddPathFromEnd(e2_e1_path_vec);
+  wide_tree.AddPathFromEnd(e2_path_vec);
+  wide_tree.AddPathFromEnd(e2_path_vec);
+  wide_tree.AddPathFromEnd(e2_path_vec);
+  wide_tree.AddPathFromEnd(e3_path_vec);
+  wide_tree.AddPathFromEnd(e3_path_vec);
+  wide_tree.AddPathFromEnd(e3_path_vec);
+  wide_tree.AddPathFromEnd(e3_path_vec);
   // Results in            -> {entry1,0,2} -> {entry2,0,1}
   //            {root,0,0} -> {entry2,0,3}
   //                       -> {entry3,0,4}
-  CHECK_EQ(0, wide_tree.root()->self_ticks());
+  CHECK_EQ(0u, wide_tree.root()->self_ticks());
   node1 = wide_helper.Walk(&entry1);
-  CHECK_NE(NULL, node1);
-  CHECK_EQ(2, node1->self_ticks());
+  CHECK(node1);
+  CHECK_EQ(2u, node1->self_ticks());
   ProfileNode* node1_2 = wide_helper.Walk(&entry1, &entry2);
-  CHECK_NE(NULL, node1_2);
-  CHECK_EQ(1, node1_2->self_ticks());
+  CHECK(node1_2);
+  CHECK_EQ(1u, node1_2->self_ticks());
   node2 = wide_helper.Walk(&entry2);
-  CHECK_NE(NULL, node2);
-  CHECK_EQ(3, node2->self_ticks());
+  CHECK(node2);
+  CHECK_EQ(3u, node2->self_ticks());
   ProfileNode* node3 = wide_helper.Walk(&entry3);
-  CHECK_NE(NULL, node3);
-  CHECK_EQ(4, node3->self_ticks());
+  CHECK(node3);
+  CHECK_EQ(4u, node3->self_ticks());
   // Calculates             -> {entry1,3,2} -> {entry2,1,1}
   //            {root,10,0} -> {entry2,3,3}
   //                        -> {entry3,4,4}
-  CHECK_EQ(0, wide_tree.root()->self_ticks());
-  CHECK_EQ(2, node1->self_ticks());
-  CHECK_EQ(1, node1_2->self_ticks());
-  CHECK_EQ(3, node2->self_ticks());
-  CHECK_EQ(4, node3->self_ticks());
+  CHECK_EQ(0u, wide_tree.root()->self_ticks());
+  CHECK_EQ(2u, node1->self_ticks());
+  CHECK_EQ(1u, node1_2->self_ticks());
+  CHECK_EQ(3u, node2->self_ticks());
+  CHECK_EQ(4u, node3->self_ticks());
 }
 
 
@@ -342,23 +288,23 @@
   code_map.AddCode(ToAddress(0x1700), &entry2, 0x100);
   code_map.AddCode(ToAddress(0x1900), &entry3, 0x50);
   code_map.AddCode(ToAddress(0x1950), &entry4, 0x10);
-  CHECK_EQ(NULL, code_map.FindEntry(0));
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0x1500 - 1)));
+  CHECK(!code_map.FindEntry(0));
+  CHECK(!code_map.FindEntry(ToAddress(0x1500 - 1)));
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1500)));
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1500 + 0x100)));
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1500 + 0x200 - 1)));
   CHECK_EQ(&entry2, code_map.FindEntry(ToAddress(0x1700)));
   CHECK_EQ(&entry2, code_map.FindEntry(ToAddress(0x1700 + 0x50)));
   CHECK_EQ(&entry2, code_map.FindEntry(ToAddress(0x1700 + 0x100 - 1)));
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0x1700 + 0x100)));
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0x1900 - 1)));
+  CHECK(!code_map.FindEntry(ToAddress(0x1700 + 0x100)));
+  CHECK(!code_map.FindEntry(ToAddress(0x1900 - 1)));
   CHECK_EQ(&entry3, code_map.FindEntry(ToAddress(0x1900)));
   CHECK_EQ(&entry3, code_map.FindEntry(ToAddress(0x1900 + 0x28)));
   CHECK_EQ(&entry4, code_map.FindEntry(ToAddress(0x1950)));
   CHECK_EQ(&entry4, code_map.FindEntry(ToAddress(0x1950 + 0x7)));
   CHECK_EQ(&entry4, code_map.FindEntry(ToAddress(0x1950 + 0x10 - 1)));
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0x1950 + 0x10)));
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0xFFFFFFFF)));
+  CHECK(!code_map.FindEntry(ToAddress(0x1950 + 0x10)));
+  CHECK(!code_map.FindEntry(ToAddress(0xFFFFFFFF)));
 }
 
 
@@ -371,11 +317,11 @@
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1500)));
   CHECK_EQ(&entry2, code_map.FindEntry(ToAddress(0x1700)));
   code_map.MoveCode(ToAddress(0x1500), ToAddress(0x1700));  // Deprecate bbb.
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0x1500)));
+  CHECK(!code_map.FindEntry(ToAddress(0x1500)));
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1700)));
   CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
   code_map.AddCode(ToAddress(0x1750), &entry3, 0x100);
-  CHECK_EQ(NULL, code_map.FindEntry(ToAddress(0x1700)));
+  CHECK(!code_map.FindEntry(ToAddress(0x1700)));
   CHECK_EQ(&entry3, code_map.FindEntry(ToAddress(0x1750)));
 }
 
@@ -438,26 +384,26 @@
   generator.RecordTickSample(sample3);
 
   CpuProfile* profile = profiles.StopProfiling("");
-  CHECK_NE(NULL, profile);
+  CHECK(profile);
   ProfileTreeTestHelper top_down_test_helper(profile->top_down());
-  CHECK_EQ(NULL, top_down_test_helper.Walk(entry2));
-  CHECK_EQ(NULL, top_down_test_helper.Walk(entry3));
+  CHECK(!top_down_test_helper.Walk(entry2));
+  CHECK(!top_down_test_helper.Walk(entry3));
   ProfileNode* node1 = top_down_test_helper.Walk(entry1);
-  CHECK_NE(NULL, node1);
+  CHECK(node1);
   CHECK_EQ(entry1, node1->entry());
   ProfileNode* node2 = top_down_test_helper.Walk(entry1, entry1);
-  CHECK_NE(NULL, node2);
+  CHECK(node2);
   CHECK_EQ(entry1, node2->entry());
   ProfileNode* node3 = top_down_test_helper.Walk(entry1, entry2, entry3);
-  CHECK_NE(NULL, node3);
+  CHECK(node3);
   CHECK_EQ(entry3, node3->entry());
   ProfileNode* node4 = top_down_test_helper.Walk(entry1, entry3, entry1);
-  CHECK_NE(NULL, node4);
+  CHECK(node4);
   CHECK_EQ(entry1, node4->entry());
 }
 
 
-static void CheckNodeIds(ProfileNode* node, int* expectedId) {
+static void CheckNodeIds(ProfileNode* node, unsigned* expectedId) {
   CHECK_EQ((*expectedId)++, node->id());
   for (int i = 0; i < node->children()->length(); i++) {
     CheckNodeIds(node->children()->at(i), expectedId);
@@ -501,12 +447,12 @@
   generator.RecordTickSample(sample3);
 
   CpuProfile* profile = profiles.StopProfiling("");
-  int nodeId = 1;
+  unsigned nodeId = 1;
   CheckNodeIds(profile->top_down()->root(), &nodeId);
-  CHECK_EQ(7, nodeId - 1);
+  CHECK_EQ(7u, nodeId - 1);
 
   CHECK_EQ(3, profile->samples_count());
-  int expected_id[] = {3, 5, 7};
+  unsigned expected_id[] = {3, 5, 7};
   for (int i = 0; i < 3; i++) {
     CHECK_EQ(expected_id[i], profile->sample(i)->id());
   }
@@ -530,9 +476,9 @@
   generator.RecordTickSample(sample1);
 
   CpuProfile* profile = profiles.StopProfiling("");
-  int nodeId = 1;
+  unsigned nodeId = 1;
   CheckNodeIds(profile->top_down()->root(), &nodeId);
-  CHECK_EQ(3, nodeId - 1);
+  CHECK_EQ(3u, nodeId - 1);
 
   CHECK_EQ(0, profile->samples_count());
 }
@@ -551,6 +497,7 @@
 TEST(RecordStackTraceAtStartProfiling) {
   // This test does not pass with inlining enabled since inlined functions
   // don't appear in the stack trace.
+  i::FLAG_turbo_inlining = false;
   i::FLAG_use_inlining = false;
 
   v8::HandleScope scope(CcTest::isolate());
@@ -580,13 +527,13 @@
   //           startProfiling
   // if the sampler managed to get a tick.
   current = PickChild(current, "");
-  CHECK_NE(NULL, const_cast<ProfileNode*>(current));
+  CHECK(const_cast<ProfileNode*>(current));
   current = PickChild(current, "a");
-  CHECK_NE(NULL, const_cast<ProfileNode*>(current));
+  CHECK(const_cast<ProfileNode*>(current));
   current = PickChild(current, "b");
-  CHECK_NE(NULL, const_cast<ProfileNode*>(current));
+  CHECK(const_cast<ProfileNode*>(current));
   current = PickChild(current, "c");
-  CHECK_NE(NULL, const_cast<ProfileNode*>(current));
+  CHECK(const_cast<ProfileNode*>(current));
   CHECK(current->children()->length() == 0 ||
         current->children()->length() == 1);
   if (current->children()->length() == 1) {
@@ -626,6 +573,7 @@
 TEST(ProfileNodeScriptId) {
   // This test does not pass with inlining enabled since inlined functions
   // don't appear in the stack trace.
+  i::FLAG_turbo_inlining = false;
   i::FLAG_use_inlining = false;
 
   v8::HandleScope scope(CcTest::isolate());
@@ -635,15 +583,16 @@
   v8::CpuProfiler* profiler = env->GetIsolate()->GetCpuProfiler();
   i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
   CHECK_EQ(0, iprofiler->GetProfilesCount());
-  v8::Handle<v8::Script> script_a = v8::Script::Compile(v8::String::NewFromUtf8(
-      env->GetIsolate(), "function a() { startProfiling(); }\n"));
-  script_a->Run();
-  v8::Handle<v8::Script> script_b =
-      v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
-                                                  "function b() { a(); }\n"
-                                                  "b();\n"
-                                                  "stopProfiling();\n"));
-  script_b->Run();
+  v8::Local<v8::Script> script_a =
+      v8_compile(v8_str("function a() { startProfiling(); }\n"));
+  script_a->Run(v8::Isolate::GetCurrent()->GetCurrentContext())
+      .ToLocalChecked();
+  v8::Local<v8::Script> script_b =
+      v8_compile(v8_str("function b() { a(); }\n"
+                        "b();\n"
+                        "stopProfiling();\n"));
+  script_b->Run(v8::Isolate::GetCurrent()->GetCurrentContext())
+      .ToLocalChecked();
   CHECK_EQ(1, iprofiler->GetProfilesCount());
   const v8::CpuProfile* profile = i::ProfilerExtension::last_profile;
   const v8::CpuProfileNode* current = profile->GetTopDownRoot();
@@ -658,14 +607,14 @@
   //         startProfiling
   // if the sampler managed to get a tick.
   current = PickChild(current, "");
-  CHECK_NE(NULL, const_cast<v8::CpuProfileNode*>(current));
+  CHECK(const_cast<v8::CpuProfileNode*>(current));
 
   current = PickChild(current, "b");
-  CHECK_NE(NULL, const_cast<v8::CpuProfileNode*>(current));
+  CHECK(const_cast<v8::CpuProfileNode*>(current));
   CHECK_EQ(script_b->GetUnboundScript()->GetId(), current->GetScriptId());
 
   current = PickChild(current, "a");
-  CHECK_NE(NULL, const_cast<v8::CpuProfileNode*>(current));
+  CHECK(const_cast<v8::CpuProfileNode*>(current));
   CHECK_EQ(script_a->GetUnboundScript()->GetId(), current->GetScriptId());
 }
 
@@ -690,9 +639,13 @@
 int GetFunctionLineNumber(LocalContext* env, const char* name) {
   CpuProfiler* profiler = CcTest::i_isolate()->cpu_profiler();
   CodeMap* code_map = profiler->generator()->code_map();
-  i::Handle<i::JSFunction> func = v8::Utils::OpenHandle(
-      *v8::Local<v8::Function>::Cast(
-          (*(*env))->Global()->Get(v8_str(name))));
+  i::Handle<i::JSFunction> func = i::Handle<i::JSFunction>::cast(
+      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
+          (*(*env))
+              ->Global()
+              ->Get(v8::Isolate::GetCurrent()->GetCurrentContext(),
+                    v8_str(name))
+              .ToLocalChecked())));
   CodeEntry* func_entry = code_map->FindEntry(func->code()->address());
   if (!func_entry)
     FATAL(name);
@@ -737,21 +690,19 @@
   v8::CpuProfiler* profiler = env->GetIsolate()->GetCpuProfiler();
   i::CpuProfiler* iprofiler = reinterpret_cast<i::CpuProfiler*>(profiler);
   CHECK_EQ(0, iprofiler->GetProfilesCount());
-  v8::Handle<v8::Script> script =
-      v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
-                                                  "function TryCatch() {\n"
-                                                  "  try {\n"
-                                                  "    startProfiling();\n"
-                                                  "  } catch (e) { };\n"
-                                                  "}\n"
-                                                  "function TryFinally() {\n"
-                                                  "  try {\n"
-                                                  "    TryCatch();\n"
-                                                  "  } finally { };\n"
-                                                  "}\n"
-                                                  "TryFinally();\n"
-                                                  "stopProfiling();"));
-  script->Run();
+  v8::Local<v8::Script> script =
+      v8_compile(v8_str("function Debugger() {\n"
+                        "  debugger;\n"
+                        "  startProfiling();\n"
+                        "}\n"
+                        "function TryFinally() {\n"
+                        "  try {\n"
+                        "    Debugger();\n"
+                        "  } finally { };\n"
+                        "}\n"
+                        "TryFinally();\n"
+                        "stopProfiling();"));
+  script->Run(v8::Isolate::GetCurrent()->GetCurrentContext()).ToLocalChecked();
   CHECK_EQ(1, iprofiler->GetProfilesCount());
   const v8::CpuProfile* profile = i::ProfilerExtension::last_profile;
   CHECK(profile);
@@ -761,16 +712,16 @@
   // The tree should look like this:
   //  (root)
   //   ""
-  //     kTryFinally
-  //       kTryCatch
+  //     kTryFinallyStatement
+  //       kDebuggerStatement
   current = PickChild(current, "");
-  CHECK_NE(NULL, const_cast<v8::CpuProfileNode*>(current));
+  CHECK(const_cast<v8::CpuProfileNode*>(current));
 
   current = PickChild(current, "TryFinally");
-  CHECK_NE(NULL, const_cast<v8::CpuProfileNode*>(current));
+  CHECK(const_cast<v8::CpuProfileNode*>(current));
   CHECK(!strcmp("TryFinallyStatement", current->GetBailoutReason()));
 
-  current = PickChild(current, "TryCatch");
-  CHECK_NE(NULL, const_cast<v8::CpuProfileNode*>(current));
-  CHECK(!strcmp("TryCatchStatement", current->GetBailoutReason()));
+  current = PickChild(current, "Debugger");
+  CHECK(const_cast<v8::CpuProfileNode*>(current));
+  CHECK(!strcmp("DebuggerStatement", current->GetBailoutReason()));
 }