Lines Matching refs:v8
55 static const v8::HeapGraphNode* GetGlobalObject( in GetGlobalObject()
56 const v8::HeapSnapshot* snapshot) { in GetGlobalObject()
58 const v8::HeapGraphNode* global_obj = in GetGlobalObject()
66 static const v8::HeapGraphNode* GetProperty(const v8::HeapGraphNode* node, in GetProperty()
67 v8::HeapGraphEdge::Type type, in GetProperty()
70 const v8::HeapGraphEdge* prop = node->GetChild(i); in GetProperty()
71 v8::String::AsciiValue prop_name(prop->GetName()); in GetProperty()
79 static bool HasString(const v8::HeapGraphNode* node, const char* contents) { in HasString()
81 const v8::HeapGraphEdge* prop = node->GetChild(i); in HasString()
82 const v8::HeapGraphNode* node = prop->GetToNode(); in HasString()
83 if (node->GetType() == v8::HeapGraphNode::kString) { in HasString()
84 v8::String::AsciiValue node_name(node->GetName()); in HasString()
93 v8::HandleScope scope; in TEST()
103 const v8::HeapSnapshot* snapshot_env2 = in TEST()
104 v8::HeapProfiler::TakeSnapshot(v8_str("env2")); in TEST()
108 const v8::HeapGraphNode* global_env2 = GetGlobalObject(snapshot_env2); in TEST()
111 const v8::HeapGraphNode* a2_node = in TEST()
112 GetProperty(global_env2, v8::HeapGraphEdge::kShortcut, "a2"); in TEST()
115 NULL, GetProperty(global_env2, v8::HeapGraphEdge::kShortcut, "b2_1")); in TEST()
117 NULL, GetProperty(global_env2, v8::HeapGraphEdge::kShortcut, "b2_2")); in TEST()
118 CHECK_NE(NULL, GetProperty(global_env2, v8::HeapGraphEdge::kShortcut, "c2")); in TEST()
132 v8::HandleScope scope; in TEST()
141 const v8::HeapSnapshot* snapshot = in TEST()
142 v8::HeapProfiler::TakeSnapshot(v8_str("sizes")); in TEST()
143 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
144 const v8::HeapGraphNode* x = in TEST()
145 GetProperty(global, v8::HeapGraphEdge::kShortcut, "x"); in TEST()
147 const v8::HeapGraphNode* x1 = in TEST()
148 GetProperty(x, v8::HeapGraphEdge::kProperty, "a"); in TEST()
150 const v8::HeapGraphNode* x2 = in TEST()
151 GetProperty(x, v8::HeapGraphEdge::kProperty, "b"); in TEST()
162 v8::HandleScope scope; in TEST()
168 const v8::HeapSnapshot* snapshot = in TEST()
169 v8::HeapProfiler::TakeSnapshot(v8_str("sizes")); in TEST()
170 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
171 const v8::HeapGraphNode* f = in TEST()
172 GetProperty(global, v8::HeapGraphEdge::kShortcut, "boundFunction"); in TEST()
174 CHECK_EQ(v8::String::New("native_bind"), f->GetName()); in TEST()
175 const v8::HeapGraphNode* bindings = in TEST()
176 GetProperty(f, v8::HeapGraphEdge::kInternal, "bindings"); in TEST()
178 CHECK_EQ(v8::HeapGraphNode::kArray, bindings->GetType()); in TEST()
181 const v8::HeapGraphNode* bound_this = GetProperty( in TEST()
182 f, v8::HeapGraphEdge::kShortcut, "bound_this"); in TEST()
184 CHECK_EQ(v8::HeapGraphNode::kObject, bound_this->GetType()); in TEST()
186 const v8::HeapGraphNode* bound_function = GetProperty( in TEST()
187 f, v8::HeapGraphEdge::kShortcut, "bound_function"); in TEST()
189 CHECK_EQ(v8::HeapGraphNode::kClosure, bound_function->GetType()); in TEST()
191 const v8::HeapGraphNode* bound_argument = GetProperty( in TEST()
192 f, v8::HeapGraphEdge::kShortcut, "bound_argument_1"); in TEST()
194 CHECK_EQ(v8::HeapGraphNode::kObject, bound_argument->GetType()); in TEST()
199 v8::HandleScope scope; in TEST()
205 const v8::HeapSnapshot* snapshot = in TEST()
206 v8::HeapProfiler::TakeSnapshot(v8_str("children")); in TEST()
207 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
209 const v8::HeapGraphEdge* prop = global->GetChild(i); in TEST()
212 const v8::HeapGraphNode* a = in TEST()
213 GetProperty(global, v8::HeapGraphEdge::kProperty, "a"); in TEST()
216 const v8::HeapGraphEdge* prop = a->GetChild(i); in TEST()
223 v8::HandleScope scope; in TEST()
231 const v8::HeapSnapshot* snapshot = in TEST()
232 v8::HeapProfiler::TakeSnapshot(v8_str("code")); in TEST()
234 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
235 const v8::HeapGraphNode* compiled = in TEST()
236 GetProperty(global, v8::HeapGraphEdge::kShortcut, "compiled"); in TEST()
238 CHECK_EQ(v8::HeapGraphNode::kClosure, compiled->GetType()); in TEST()
239 const v8::HeapGraphNode* lazy = in TEST()
240 GetProperty(global, v8::HeapGraphEdge::kShortcut, "lazy"); in TEST()
242 CHECK_EQ(v8::HeapGraphNode::kClosure, lazy->GetType()); in TEST()
243 const v8::HeapGraphNode* anonymous = in TEST()
244 GetProperty(global, v8::HeapGraphEdge::kShortcut, "anonymous"); in TEST()
246 CHECK_EQ(v8::HeapGraphNode::kClosure, anonymous->GetType()); in TEST()
247 v8::String::AsciiValue anonymous_name(anonymous->GetName()); in TEST()
251 const v8::HeapGraphNode* compiled_code = in TEST()
252 GetProperty(compiled, v8::HeapGraphEdge::kInternal, "shared"); in TEST()
254 const v8::HeapGraphNode* lazy_code = in TEST()
255 GetProperty(lazy, v8::HeapGraphEdge::kInternal, "shared"); in TEST()
263 const v8::HeapGraphEdge* prop = compiled_code->GetChild(i); in TEST()
264 const v8::HeapGraphNode* node = prop->GetToNode(); in TEST()
265 if (node->GetType() == v8::HeapGraphNode::kArray) { in TEST()
273 const v8::HeapGraphEdge* prop = lazy_code->GetChild(i); in TEST()
274 const v8::HeapGraphNode* node = prop->GetToNode(); in TEST()
275 if (node->GetType() == v8::HeapGraphNode::kArray) { in TEST()
288 v8::HandleScope scope; in TEST()
293 const v8::HeapSnapshot* snapshot = in TEST()
294 v8::HeapProfiler::TakeSnapshot(v8_str("numbers")); in TEST()
295 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
296 CHECK_EQ(NULL, GetProperty(global, v8::HeapGraphEdge::kShortcut, "a")); in TEST()
297 const v8::HeapGraphNode* b = in TEST()
298 GetProperty(global, v8::HeapGraphEdge::kShortcut, "b"); in TEST()
300 CHECK_EQ(v8::HeapGraphNode::kHeapNumber, b->GetType()); in TEST()
304 v8::HandleScope scope; in TEST()
312 const v8::HeapSnapshot* snapshot = in TEST()
313 v8::HeapProfiler::TakeSnapshot(v8_str("strings")); in TEST()
314 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
315 const v8::HeapGraphNode* parent_string = in TEST()
316 GetProperty(global, v8::HeapGraphEdge::kShortcut, "parent_string"); in TEST()
318 const v8::HeapGraphNode* child_string = in TEST()
319 GetProperty(global, v8::HeapGraphEdge::kShortcut, "child_string"); in TEST()
321 const v8::HeapGraphNode* parent = in TEST()
322 GetProperty(child_string, v8::HeapGraphEdge::kInternal, "parent"); in TEST()
327 v8::HandleScope scope; in TEST()
328 v8::Local<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); in TEST()
331 v8::Handle<v8::Object> global_proxy = env->Global(); in TEST()
332 v8::Handle<v8::Object> global = global_proxy->GetPrototype().As<v8::Object>(); in TEST()
334 v8::Local<v8::Object> obj = v8::Object::New(); in TEST()
337 const v8::HeapSnapshot* snapshot = in TEST()
338 v8::HeapProfiler::TakeSnapshot(v8_str("internals")); in TEST()
339 const v8::HeapGraphNode* global_node = GetGlobalObject(snapshot); in TEST()
341 CHECK_EQ(NULL, GetProperty(global_node, v8::HeapGraphEdge::kInternal, "0")); in TEST()
343 CHECK_NE(NULL, GetProperty(global_node, v8::HeapGraphEdge::kInternal, "1")); in TEST()
356 v8::HandleScope scope; in TEST()
367 const v8::HeapSnapshot* snapshot1 = in TEST()
368 v8::HeapProfiler::TakeSnapshot(v8_str("s1")); in TEST()
376 const v8::HeapSnapshot* snapshot2 = in TEST()
377 v8::HeapProfiler::TakeSnapshot(v8_str("s2")); in TEST()
379 const v8::HeapGraphNode* global1 = GetGlobalObject(snapshot1); in TEST()
380 const v8::HeapGraphNode* global2 = GetGlobalObject(snapshot2); in TEST()
384 const v8::HeapGraphNode* a1 = in TEST()
385 GetProperty(global1, v8::HeapGraphEdge::kProperty, "a"); in TEST()
387 const v8::HeapGraphNode* e1 = in TEST()
388 GetProperty(a1, v8::HeapGraphEdge::kHidden, "1"); in TEST()
390 const v8::HeapGraphNode* k1 = in TEST()
391 GetProperty(e1, v8::HeapGraphEdge::kInternal, "elements"); in TEST()
393 const v8::HeapGraphNode* a2 = in TEST()
394 GetProperty(global2, v8::HeapGraphEdge::kProperty, "a"); in TEST()
396 const v8::HeapGraphNode* e2 = in TEST()
397 GetProperty(a2, v8::HeapGraphEdge::kHidden, "1"); in TEST()
399 const v8::HeapGraphNode* k2 = in TEST()
400 GetProperty(e2, v8::HeapGraphEdge::kInternal, "elements"); in TEST()
409 v8::HandleScope scope; in TEST()
417 const v8::HeapSnapshot* snapshot1 = in TEST()
418 v8::HeapProfiler::TakeSnapshot(v8_str("s1")); in TEST()
422 const v8::HeapSnapshot* snapshot2 = in TEST()
423 v8::HeapProfiler::TakeSnapshot(v8_str("s2")); in TEST()
425 const v8::HeapGraphNode* global1 = GetGlobalObject(snapshot1); in TEST()
426 const v8::HeapGraphNode* global2 = GetGlobalObject(snapshot2); in TEST()
429 const v8::HeapGraphNode* A1 = in TEST()
430 GetProperty(global1, v8::HeapGraphEdge::kProperty, "A"); in TEST()
432 const v8::HeapGraphNode* A2 = in TEST()
433 GetProperty(global2, v8::HeapGraphEdge::kProperty, "A"); in TEST()
437 const v8::HeapGraphNode* B1 = in TEST()
438 GetProperty(global1, v8::HeapGraphEdge::kProperty, "B"); in TEST()
440 const v8::HeapGraphNode* B2 = in TEST()
441 GetProperty(global2, v8::HeapGraphEdge::kProperty, "B"); in TEST()
445 const v8::HeapGraphNode* a1 = in TEST()
446 GetProperty(global1, v8::HeapGraphEdge::kProperty, "a"); in TEST()
448 const v8::HeapGraphNode* a2 = in TEST()
449 GetProperty(global2, v8::HeapGraphEdge::kProperty, "a"); in TEST()
453 const v8::HeapGraphNode* b1 = in TEST()
454 GetProperty(global1, v8::HeapGraphEdge::kProperty, "b"); in TEST()
456 const v8::HeapGraphNode* b2 = in TEST()
457 GetProperty(global2, v8::HeapGraphEdge::kProperty, "b"); in TEST()
465 v8::HandleScope scope; in TEST()
467 const v8::HeapSnapshot* snapshot = in TEST()
468 v8::HeapProfiler::TakeSnapshot(v8_str("s")); in TEST()
469 const v8::HeapGraphNode* root1 = snapshot->GetRoot(); in TEST()
472 const v8::HeapGraphNode* root2 = snapshot->GetRoot(); in TEST()
492 v8::HandleScope scope; in TEST()
505 const v8::HeapSnapshot* snapshot = in TEST()
506 v8::HeapProfiler::TakeSnapshot(v8_str("dominators")); in TEST()
508 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
510 const v8::HeapGraphNode* node6 = in TEST()
511 GetProperty(global, v8::HeapGraphEdge::kShortcut, "node6"); in TEST()
513 const v8::HeapGraphNode* node5 = in TEST()
514 GetProperty(node6, v8::HeapGraphEdge::kProperty, "a"); in TEST()
516 const v8::HeapGraphNode* node4 = in TEST()
517 GetProperty(node6, v8::HeapGraphEdge::kProperty, "b"); in TEST()
519 const v8::HeapGraphNode* node3 = in TEST()
520 GetProperty(node4, v8::HeapGraphEdge::kProperty, "b"); in TEST()
522 const v8::HeapGraphNode* node2 = in TEST()
523 GetProperty(node4, v8::HeapGraphEdge::kProperty, "a"); in TEST()
525 const v8::HeapGraphNode* node1 = in TEST()
526 GetProperty(node5, v8::HeapGraphEdge::kProperty, "a"); in TEST()
539 class TestJSONStream : public v8::OutputStream {
563 class AsciiResource: public v8::String::ExternalAsciiStringResource {
578 v8::HandleScope scope; in TEST()
588 const v8::HeapSnapshot* snapshot = in TEST()
589 v8::HeapProfiler::TakeSnapshot(v8_str("json")); in TEST()
591 snapshot->Serialize(&stream, v8::HeapSnapshot::kJSON); in TEST()
599 v8::Local<v8::String> json_string = v8::String::NewExternal(&json_res); in TEST()
601 v8::Local<v8::Value> snapshot_parse_result = CompileRun( in TEST()
606 v8::Local<v8::Object> parsed_snapshot = in TEST()
613 v8::Local<v8::Value> meta_analysis_result = CompileRun( in TEST()
650 v8::Local<v8::Value> string_obj_pos_val = CompileRun( in TEST()
661 v8::Local<v8::Object> nodes_array = in TEST()
666 v8::Local<v8::Object> strings_array = in TEST()
668 v8::Local<v8::String> string = strings_array->Get(string_index)->ToString(); in TEST()
669 v8::Local<v8::String> ref_string = in TEST()
672 CHECK_EQ(*v8::String::Utf8Value(ref_string), in TEST()
673 *v8::String::Utf8Value(string)); in TEST()
678 v8::HandleScope scope; in TEST()
680 const v8::HeapSnapshot* snapshot = in TEST()
681 v8::HeapProfiler::TakeSnapshot(v8_str("abort")); in TEST()
683 snapshot->Serialize(&stream, v8::HeapSnapshot::kJSON); in TEST()
689 static void CheckChildrenIds(const v8::HeapSnapshot* snapshot, in CheckChildrenIds()
690 const v8::HeapGraphNode* node, in CheckChildrenIds()
695 const v8::HeapGraphEdge* prop = node->GetChild(i); in CheckChildrenIds()
696 const v8::HeapGraphNode* child = in CheckChildrenIds()
706 v8::HandleScope scope; in TEST()
709 const v8::HeapSnapshot* snapshot = in TEST()
710 v8::HeapProfiler::TakeSnapshot(v8_str("id")); in TEST()
711 const v8::HeapGraphNode* root = snapshot->GetRoot(); in TEST()
720 class TestActivityControl : public v8::ActivityControl {
740 v8::HandleScope scope; in TEST()
743 const int snapshots_count = v8::HeapProfiler::GetSnapshotsCount(); in TEST()
745 const v8::HeapSnapshot* no_snapshot = in TEST()
746 v8::HeapProfiler::TakeSnapshot(v8_str("abort"), in TEST()
747 v8::HeapSnapshot::kFull, in TEST()
750 CHECK_EQ(snapshots_count, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
754 const v8::HeapSnapshot* snapshot = in TEST()
755 v8::HeapProfiler::TakeSnapshot(v8_str("full"), in TEST()
756 v8::HeapSnapshot::kFull, in TEST()
759 CHECK_EQ(snapshots_count + 1, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
767 class TestRetainedObjectInfo : public v8::RetainedObjectInfo {
797 static v8::RetainedObjectInfo* WrapperInfoCallback( in WrapperInfoCallback()
798 uint16_t class_id, v8::Handle<v8::Value> wrapper) { in WrapperInfoCallback()
801 v8::String::AsciiValue ascii(wrapper); in WrapperInfoCallback()
809 v8::String::AsciiValue ascii(wrapper); in WrapperInfoCallback()
835 static const v8::HeapGraphNode* GetNode(const v8::HeapGraphNode* parent, in GetNode()
836 v8::HeapGraphNode::Type type, in GetNode()
839 const v8::HeapGraphNode* node = parent->GetChild(i)->GetToNode(); in GetNode()
851 v8::HandleScope scope; in TEST()
854 v8::HeapProfiler::DefineWrapperClass( in TEST()
856 v8::HeapProfiler::DefineWrapperClass( in TEST()
858 v8::Persistent<v8::String> p_AAA = in TEST()
859 v8::Persistent<v8::String>::New(v8_str("AAA")); in TEST()
861 v8::Persistent<v8::String> p_BBB = in TEST()
862 v8::Persistent<v8::String>::New(v8_str("BBB")); in TEST()
864 v8::Persistent<v8::String> p_CCC = in TEST()
865 v8::Persistent<v8::String>::New(v8_str("CCC")); in TEST()
868 const v8::HeapSnapshot* snapshot = in TEST()
869 v8::HeapProfiler::TakeSnapshot(v8_str("retained")); in TEST()
877 const v8::HeapGraphNode* native_group_aaa = GetNode( in TEST()
878 snapshot->GetRoot(), v8::HeapGraphNode::kSynthetic, "aaa-group"); in TEST()
881 const v8::HeapGraphNode* aaa = GetNode( in TEST()
882 native_group_aaa, v8::HeapGraphNode::kNative, "aaa / 100 entries"); in TEST()
886 const v8::HeapGraphNode* native_group_ccc = GetNode( in TEST()
887 snapshot->GetRoot(), v8::HeapGraphNode::kSynthetic, "ccc-group"); in TEST()
888 const v8::HeapGraphNode* ccc = GetNode( in TEST()
889 native_group_ccc, v8::HeapGraphNode::kNative, "ccc"); in TEST()
892 const v8::HeapGraphNode* n_AAA = GetNode( in TEST()
893 aaa, v8::HeapGraphNode::kString, "AAA"); in TEST()
895 const v8::HeapGraphNode* n_BBB = GetNode( in TEST()
896 aaa, v8::HeapGraphNode::kString, "BBB"); in TEST()
899 const v8::HeapGraphNode* n_CCC = GetNode( in TEST()
900 ccc, v8::HeapGraphNode::kString, "CCC"); in TEST()
903 CHECK_EQ(aaa, GetProperty(n_AAA, v8::HeapGraphEdge::kInternal, "native")); in TEST()
904 CHECK_EQ(aaa, GetProperty(n_BBB, v8::HeapGraphEdge::kInternal, "native")); in TEST()
905 CHECK_EQ(ccc, GetProperty(n_CCC, v8::HeapGraphEdge::kInternal, "native")); in TEST()
916 objects_[i] = v8::Persistent<v8::Object>::New(v8::Object::New()); in GraphWithImplicitRefs()
931 v8::V8::AddImplicitReferences( in AddImplicitReferences()
932 v8::Persistent<v8::Object>::Cast(objects_[0]), &objects_[1], 1); in AddImplicitReferences()
934 v8::V8::AddImplicitReferences( in AddImplicitReferences()
935 v8::Persistent<v8::Object>::Cast(objects_[1]), &objects_[2], 2); in AddImplicitReferences()
938 v8::Persistent<v8::Value> objects_[kObjectsCount];
946 v8::HandleScope scope; in TEST()
950 v8::V8::SetGlobalGCPrologueCallback(&GraphWithImplicitRefs::gcPrologue); in TEST()
952 const v8::HeapSnapshot* snapshot = in TEST()
953 v8::HeapProfiler::TakeSnapshot(v8_str("implicit_refs")); in TEST()
955 const v8::HeapGraphNode* global_object = GetGlobalObject(snapshot); in TEST()
957 const v8::HeapGraphNode* obj0 = GetProperty( in TEST()
958 global_object, v8::HeapGraphEdge::kShortcut, "root_object"); in TEST()
960 CHECK_EQ(v8::HeapGraphNode::kObject, obj0->GetType()); in TEST()
961 const v8::HeapGraphNode* obj1 = GetProperty( in TEST()
962 obj0, v8::HeapGraphEdge::kInternal, "native"); in TEST()
966 const v8::HeapGraphEdge* prop = obj1->GetChild(i); in TEST()
967 v8::String::AsciiValue prop_name(prop->GetName()); in TEST()
968 if (prop->GetType() == v8::HeapGraphEdge::kInternal && in TEST()
974 v8::V8::SetGlobalGCPrologueCallback(NULL); in TEST()
979 v8::HandleScope scope; in TEST()
982 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
983 v8::HeapProfiler::DeleteAllSnapshots(); in TEST()
984 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
985 CHECK_NE(NULL, v8::HeapProfiler::TakeSnapshot(v8_str("1"))); in TEST()
986 CHECK_EQ(1, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
987 v8::HeapProfiler::DeleteAllSnapshots(); in TEST()
988 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
989 CHECK_NE(NULL, v8::HeapProfiler::TakeSnapshot(v8_str("1"))); in TEST()
990 CHECK_NE(NULL, v8::HeapProfiler::TakeSnapshot(v8_str("2"))); in TEST()
991 CHECK_EQ(2, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
992 v8::HeapProfiler::DeleteAllSnapshots(); in TEST()
993 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
998 v8::HandleScope scope; in TEST()
1001 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1002 const v8::HeapSnapshot* s1 = in TEST()
1003 v8::HeapProfiler::TakeSnapshot(v8_str("1")); in TEST()
1005 CHECK_EQ(1, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1007 CHECK_EQ(s1, v8::HeapProfiler::FindSnapshot(uid1)); in TEST()
1008 const_cast<v8::HeapSnapshot*>(s1)->Delete(); in TEST()
1009 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1010 CHECK_EQ(NULL, v8::HeapProfiler::FindSnapshot(uid1)); in TEST()
1012 const v8::HeapSnapshot* s2 = in TEST()
1013 v8::HeapProfiler::TakeSnapshot(v8_str("2")); in TEST()
1015 CHECK_EQ(1, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1018 CHECK_EQ(s2, v8::HeapProfiler::FindSnapshot(uid2)); in TEST()
1019 const v8::HeapSnapshot* s3 = in TEST()
1020 v8::HeapProfiler::TakeSnapshot(v8_str("3")); in TEST()
1022 CHECK_EQ(2, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1025 CHECK_EQ(s3, v8::HeapProfiler::FindSnapshot(uid3)); in TEST()
1026 const_cast<v8::HeapSnapshot*>(s2)->Delete(); in TEST()
1027 CHECK_EQ(1, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1028 CHECK_EQ(NULL, v8::HeapProfiler::FindSnapshot(uid2)); in TEST()
1029 CHECK_EQ(s3, v8::HeapProfiler::FindSnapshot(uid3)); in TEST()
1030 const_cast<v8::HeapSnapshot*>(s3)->Delete(); in TEST()
1031 CHECK_EQ(0, v8::HeapProfiler::GetSnapshotsCount()); in TEST()
1032 CHECK_EQ(NULL, v8::HeapProfiler::FindSnapshot(uid3)); in TEST()
1037 v8::HandleScope scope; in TEST()
1042 const v8::HeapSnapshot* snapshot = in TEST()
1043 v8::HeapProfiler::TakeSnapshot(v8_str("document")); in TEST()
1044 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1053 v8::HandleScope scope; in TEST()
1058 const v8::HeapSnapshot* snapshot = in TEST()
1059 v8::HeapProfiler::TakeSnapshot(v8_str("document")); in TEST()
1060 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1069 v8::HandleScope scope; in TEST()
1076 const v8::HeapSnapshot* snapshot = in TEST()
1077 v8::HeapProfiler::TakeSnapshot(v8_str("document")); in TEST()
1078 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1087 v8::HandleScope scope; in TEST()
1092 v8::Handle<v8::String> name(v8_str("leakz")); in TEST()
1094 v8::HeapProfiler::TakeSnapshot(name); in TEST()
1101 v8::HandleScope scope; in TEST()
1103 const v8::HeapSnapshot* snapshot = in TEST()
1104 v8::HeapProfiler::TakeSnapshot(v8_str("iteration")); in TEST()
1105 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1119 v8::HandleScope scope; in TEST()
1123 const v8::HeapSnapshot* snapshot = in TEST()
1124 v8::HeapProfiler::TakeSnapshot(v8_str("value")); in TEST()
1125 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1127 v8::Local<v8::Object> js_global = in TEST()
1128 env->Global()->GetPrototype().As<v8::Object>(); in TEST()
1130 const v8::HeapGraphNode* obj = GetProperty( in TEST()
1131 global, v8::HeapGraphEdge::kShortcut, "a"); in TEST()
1133 v8::Local<v8::Object> js_obj = js_global->Get(v8_str("a")).As<v8::Object>(); in TEST()
1135 const v8::HeapGraphNode* s_prop = in TEST()
1136 GetProperty(obj, v8::HeapGraphEdge::kProperty, "s_prop"); in TEST()
1137 v8::Local<v8::String> js_s_prop = in TEST()
1138 js_obj->Get(v8_str("s_prop")).As<v8::String>(); in TEST()
1140 const v8::HeapGraphNode* n_prop = in TEST()
1141 GetProperty(obj, v8::HeapGraphEdge::kProperty, "n_prop"); in TEST()
1142 v8::Local<v8::Number> js_n_prop = in TEST()
1143 js_obj->Get(v8_str("n_prop")).As<v8::Number>(); in TEST()
1149 v8::HandleScope scope; in TEST()
1156 const v8::HeapSnapshot* snapshot = in TEST()
1157 v8::HeapProfiler::TakeSnapshot(v8_str("snapshot")); in TEST()
1158 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1159 const v8::HeapGraphNode* obj = GetProperty( in TEST()
1160 global, v8::HeapGraphEdge::kShortcut, "a"); in TEST()
1161 const v8::HeapGraphNode* prop = GetProperty( in TEST()
1162 obj, v8::HeapGraphEdge::kProperty, "p"); in TEST()
1166 v8::HandleScope scope; in TEST()
1184 v8::HandleScope scope; in TEST()
1201 v8::Local<v8::Object> js_global = in TEST()
1202 env->Global()->GetPrototype().As<v8::Object>(); in TEST()
1203 v8::Local<v8::Object> obj1 = js_global->Get(v8_str("obj1")).As<v8::Object>(); in TEST()
1204 i::Handle<i::JSObject> js_obj1 = v8::Utils::OpenHandle(*obj1); in TEST()
1207 v8::Local<v8::Object> obj2 = js_global->Get(v8_str("obj2")).As<v8::Object>(); in TEST()
1208 i::Handle<i::JSObject> js_obj2 = v8::Utils::OpenHandle(*obj2); in TEST()
1211 v8::Local<v8::Object> obj3 = js_global->Get(v8_str("obj3")).As<v8::Object>(); in TEST()
1212 i::Handle<i::JSObject> js_obj3 = v8::Utils::OpenHandle(*obj3); in TEST()
1215 v8::Local<v8::Object> obj4 = js_global->Get(v8_str("obj4")).As<v8::Object>(); in TEST()
1216 i::Handle<i::JSObject> js_obj4 = v8::Utils::OpenHandle(*obj4); in TEST()
1219 v8::Local<v8::Object> obj5 = js_global->Get(v8_str("obj5")).As<v8::Object>(); in TEST()
1220 i::Handle<i::JSObject> js_obj5 = v8::Utils::OpenHandle(*obj5); in TEST()
1223 v8::Local<v8::Object> obj6 = js_global->Get(v8_str("obj6")).As<v8::Object>(); in TEST()
1224 i::Handle<i::JSObject> js_obj6 = v8::Utils::OpenHandle(*obj6); in TEST()
1231 v8::HandleScope scope; in TEST()
1241 const v8::HeapSnapshot* snapshot = in TEST()
1242 v8::HeapProfiler::TakeSnapshot(v8_str("fastCaseGetter")); in TEST()
1244 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1246 const v8::HeapGraphNode* obj1 = in TEST()
1247 GetProperty(global, v8::HeapGraphEdge::kShortcut, "obj1"); in TEST()
1249 const v8::HeapGraphNode* getterFunction = in TEST()
1250 GetProperty(obj1, v8::HeapGraphEdge::kProperty, "get-propWithGetter"); in TEST()
1252 const v8::HeapGraphNode* setterFunction = in TEST()
1253 GetProperty(obj1, v8::HeapGraphEdge::kProperty, "set-propWithSetter"); in TEST()
1258 bool HasWeakEdge(const v8::HeapGraphNode* node) { in HasWeakEdge()
1260 const v8::HeapGraphEdge* handle_edge = node->GetChild(i); in HasWeakEdge()
1261 if (handle_edge->GetType() == v8::HeapGraphEdge::kWeak) return true; in HasWeakEdge()
1268 const v8::HeapSnapshot* snapshot = in HasWeakGlobalHandle()
1269 v8::HeapProfiler::TakeSnapshot(v8_str("weaks")); in HasWeakGlobalHandle()
1270 const v8::HeapGraphNode* gc_roots = GetNode( in HasWeakGlobalHandle()
1271 snapshot->GetRoot(), v8::HeapGraphNode::kObject, "(GC roots)"); in HasWeakGlobalHandle()
1273 const v8::HeapGraphNode* global_handles = GetNode( in HasWeakGlobalHandle()
1274 gc_roots, v8::HeapGraphNode::kObject, "(Global handles)"); in HasWeakGlobalHandle()
1280 static void PersistentHandleCallback(v8::Persistent<v8::Value> handle, void*) { in PersistentHandleCallback()
1286 v8::HandleScope scope; in TEST()
1291 v8::Persistent<v8::Object> handle = in TEST()
1292 v8::Persistent<v8::Object>::New(v8::Object::New()); in TEST()
1300 v8::HandleScope scope; in TEST()
1303 const v8::HeapSnapshot* snapshot = in TEST()
1304 v8::HeapProfiler::TakeSnapshot(v8_str("weaks")); in TEST()
1305 const v8::HeapGraphNode* gc_roots = GetNode( in TEST()
1306 snapshot->GetRoot(), v8::HeapGraphNode::kObject, "(GC roots)"); in TEST()
1308 const v8::HeapGraphNode* global_handles = GetNode( in TEST()
1309 gc_roots, v8::HeapGraphNode::kObject, "(Global handles)"); in TEST()
1311 const v8::HeapGraphNode* global_context = GetNode( in TEST()
1312 global_handles, v8::HeapGraphNode::kHidden, "system / GlobalContext"); in TEST()
1319 v8::HandleScope scope; in TEST()
1324 const v8::HeapSnapshot* snapshot = in TEST()
1325 v8::HeapProfiler::TakeSnapshot(v8_str("fun")); in TEST()
1326 const v8::HeapGraphNode* global = GetGlobalObject(snapshot); in TEST()
1328 const v8::HeapGraphNode* fun = in TEST()
1329 GetProperty(global, v8::HeapGraphEdge::kShortcut, "fun"); in TEST()
1331 const v8::HeapGraphNode* shared = in TEST()
1332 GetProperty(fun, v8::HeapGraphEdge::kInternal, "shared"); in TEST()
1338 v8::HandleScope scope; in TEST()
1343 int global_handle_count = v8::HeapProfiler::GetPersistentHandleCount(); in TEST()
1346 v8::Persistent<v8::String> p_AAA = in TEST()
1347 v8::Persistent<v8::String>::New(v8_str("AAA")); in TEST()
1349 v8::HeapProfiler::GetPersistentHandleCount()); in TEST()
1350 v8::Persistent<v8::String> p_BBB = in TEST()
1351 v8::Persistent<v8::String>::New(v8_str("BBB")); in TEST()
1353 v8::HeapProfiler::GetPersistentHandleCount()); in TEST()
1354 v8::Persistent<v8::String> p_CCC = in TEST()
1355 v8::Persistent<v8::String>::New(v8_str("CCC")); in TEST()
1357 v8::HeapProfiler::GetPersistentHandleCount()); in TEST()
1362 v8::HeapProfiler::GetPersistentHandleCount()); in TEST()
1365 v8::HeapProfiler::GetPersistentHandleCount()); in TEST()
1367 CHECK_EQ(global_handle_count, v8::HeapProfiler::GetPersistentHandleCount()); in TEST()