| Index: test/cctest/test-heap-profiler.cc | 
| diff --git a/test/cctest/test-heap-profiler.cc b/test/cctest/test-heap-profiler.cc | 
| index 560d004680ab6a71eec85fe20f23d365c059b036..9d2755ddc85877ef19aebc43bf84723277accf62 100644 | 
| --- a/test/cctest/test-heap-profiler.cc | 
| +++ b/test/cctest/test-heap-profiler.cc | 
| @@ -565,7 +565,7 @@ TEST(HeapSnapshotJSONSerialization) { | 
| // Get node and edge "member" offsets. | 
| v8::Local<v8::Value> meta_analysis_result = CompileRun( | 
| "var meta = parsed.snapshot.meta;\n" | 
| -      "var edges_index_offset = meta.node_fields.indexOf('edges_index');\n" | 
| +      "var edge_count_offset = meta.node_fields.indexOf('edge_count');\n" | 
| "var node_fields_count = meta.node_fields.length;\n" | 
| "var edge_fields_count = meta.edge_fields.length;\n" | 
| "var edge_type_offset = meta.edge_fields.indexOf('type');\n" | 
| @@ -575,7 +575,13 @@ TEST(HeapSnapshotJSONSerialization) { | 
| "    meta.edge_types[edge_type_offset].indexOf('property');\n" | 
| "var shortcut_type =" | 
| "    meta.edge_types[edge_type_offset].indexOf('shortcut');\n" | 
| -      "parsed.nodes.concat(0, 0, 0, 0, 0, 0, parsed.edges.length);"); | 
| +      "var node_count = parsed.nodes.length / node_fields_count;\n" | 
| +      "var first_edge_indexes = parsed.first_edge_indexes = [];\n" | 
| +      "for (var i = 0, first_edge_index = 0; i < node_count; ++i) {\n" | 
| +      "  first_edge_indexes[i] = first_edge_index;\n" | 
| +      "  first_edge_index += edge_fields_count *\n" | 
| +      "      parsed.nodes[i * node_fields_count + edge_count_offset];\n" | 
| +      "}\n"); | 
| CHECK(!meta_analysis_result.IsEmpty()); | 
|  | 
| // A helper function for processing encoded nodes. | 
| @@ -584,8 +590,9 @@ TEST(HeapSnapshotJSONSerialization) { | 
| "  var nodes = parsed.nodes;\n" | 
| "  var edges = parsed.edges;\n" | 
| "  var strings = parsed.strings;\n" | 
| -      "  for (var i = nodes[pos + edges_index_offset],\n" | 
| -      "      count = nodes[pos + node_fields_count + edges_index_offset];\n" | 
| +      "  var node_ordinal = pos / node_fields_count;\n" | 
| +      "  for (var i = parsed.first_edge_indexes[node_ordinal],\n" | 
| +      "      count = parsed.first_edge_indexes[node_ordinal + 1];\n" | 
| "      i < count; i += edge_fields_count) {\n" | 
| "    if (edges[i + edge_type_offset] === prop_type\n" | 
| "        && strings[edges[i + edge_name_offset]] === prop_name)\n" | 
| @@ -598,8 +605,7 @@ TEST(HeapSnapshotJSONSerialization) { | 
| "GetChildPosByProperty(\n" | 
| "  GetChildPosByProperty(\n" | 
| "    GetChildPosByProperty(" | 
| -      "      parsed.edges[parsed.nodes[edges_index_offset]" | 
| -      "                   + edge_to_node_offset]," | 
| +      "      parsed.edges[edge_to_node_offset]," | 
| "      \"b\", property_type),\n" | 
| "    \"x\", property_type)," | 
| "  \"s\", property_type)"); | 
|  |