| Index: test/cctest/test-heap-profiler.cc | 
| diff --git a/test/cctest/test-heap-profiler.cc b/test/cctest/test-heap-profiler.cc | 
| index eff5744d83543664cc10f09a49b98f862fc08bea..e151fdc5ff7654c927359dde38a0272f6e260300 100644 | 
| --- a/test/cctest/test-heap-profiler.cc | 
| +++ b/test/cctest/test-heap-profiler.cc | 
| @@ -1041,6 +1041,49 @@ TEST(HeapSnapshotObjectsStats) { | 
| } | 
|  | 
|  | 
| +TEST(HeapObjectIds) { | 
| +  LocalContext env; | 
| +  v8::Isolate* isolate = env->GetIsolate(); | 
| +  v8::HandleScope scope(isolate); | 
| +  v8::HeapProfiler* heap_profiler = env->GetIsolate()->GetHeapProfiler(); | 
| + | 
| +  const int kLength = 10; | 
| +  v8::Handle<v8::Object> objects[kLength]; | 
| +  v8::SnapshotObjectId ids[kLength]; | 
| + | 
| +  heap_profiler->StartTrackingHeapObjects(false); | 
| + | 
| +  for (int i = 0; i < kLength; i++) { | 
| +    objects[i] = v8::Object::New(isolate); | 
| +  } | 
| +  GetHeapStatsUpdate(heap_profiler); | 
| + | 
| +  for (int i = 0; i < kLength; i++) { | 
| +    v8::SnapshotObjectId id = heap_profiler->GetObjectId(objects[i]); | 
| +    CHECK_NE(v8::HeapProfiler::kUnknownObjectId, static_cast<int>(id)); | 
| +    ids[i] = id; | 
| +  } | 
| + | 
| +  heap_profiler->StopTrackingHeapObjects(); | 
| +  CcTest::heap()->CollectAllAvailableGarbage(); | 
| + | 
| +  for (int i = 0; i < kLength; i++) { | 
| +    v8::SnapshotObjectId id = heap_profiler->GetObjectId(objects[i]); | 
| +    CHECK_EQ(static_cast<int>(ids[i]), static_cast<int>(id)); | 
| +    v8::Handle<v8::Value> obj = heap_profiler->FindObjectById(ids[i]); | 
| +    CHECK_EQ(objects[i], obj); | 
| +  } | 
| + | 
| +  heap_profiler->ClearObjectIds(); | 
| +  for (int i = 0; i < kLength; i++) { | 
| +    v8::SnapshotObjectId id = heap_profiler->GetObjectId(objects[i]); | 
| +    CHECK_EQ(v8::HeapProfiler::kUnknownObjectId, static_cast<int>(id)); | 
| +    v8::Handle<v8::Value> obj = heap_profiler->FindObjectById(ids[i]); | 
| +    CHECK(obj.IsEmpty()); | 
| +  } | 
| +} | 
| + | 
| + | 
| static void CheckChildrenIds(const v8::HeapSnapshot* snapshot, | 
| const v8::HeapGraphNode* node, | 
| int level, int max_level) { | 
|  |