Lines Matching defs:object

65     // All references should be from the current primary object.
95 // All references should be from the current primary object.
184 // Objects transitively retained by the primary object. The objects in the set
185 // at index i are retained by the primary object via a chain of i+1
250 // One of these entries doesn't correspond to a real heap object.
370 case kObject: return "/object/";
518 // It may occur that some untracked object moves to an address X and there
519 // is a tracked object at that address. In this case we should remove the
520 // entry as we know that the object has died.
532 // We found the existing entry with to address for an old object.
544 // Size of an object can change during its life, so to keep information
545 // about the object in entries_ consistent, we have to adjust size when the
546 // object is migrated.
548 PrintF("Move object from %p to %p old size %6d new size %6d\n",
587 PrintF("Update object size : %p with old size %d and new size %d\n",
635 PrintF("Update object : %p %6d. Next address is %p\n",
771 void V8HeapExplorer::ExtractLocation(HeapEntry* entry, HeapObject object) {
772 if (object.IsJSFunction()) {
773 JSFunction func = JSFunction::cast(object);
776 } else if (object.IsJSGeneratorObject()) {
777 JSGeneratorObject gen = JSGeneratorObject::cast(object);
780 } else if (object.IsJSObject()) {
781 JSObject obj = JSObject::cast(object);
801 HeapEntry* V8HeapExplorer::AddEntry(HeapObject object) {
802 if (object.IsJSFunction()) {
803 JSFunction func = JSFunction::cast(object);
806 return AddEntry(object, HeapEntry::kClosure, name);
807 } else if (object.IsJSBoundFunction()) {
808 return AddEntry(object, HeapEntry::kClosure, "native_bind");
809 } else if (object.IsJSRegExp()) {
810 JSRegExp re = JSRegExp::cast(object);
811 return AddEntry(object, HeapEntry::kRegExp, names_->GetName(re.source()));
812 } else if (object.IsJSObject()) {
816 GetConstructorName(heap_->isolate(), JSObject::cast(object)));
817 if (object.IsJSGlobalObject()) {
818 auto it = global_object_tag_map_.find(JSGlobalObject::cast(object));
823 return AddEntry(object, HeapEntry::kObject, name);
824 } else if (object.IsString()) {
825 String string = String::cast(object);
827 return AddEntry(object, HeapEntry::kConsString, "(concatenated string)");
829 return AddEntry(object, HeapEntry::kSlicedString, "(sliced string)");
831 return AddEntry(object, HeapEntry::kString,
832 names_->GetName(String::cast(object)));
834 } else if (object.IsSymbol()) {
835 if (Symbol::cast(object).is_private())
836 return AddEntry(object, HeapEntry::kHidden, "private symbol");
838 return AddEntry(object, HeapEntry::kSymbol, "symbol");
839 } else if (object.IsBigInt()) {
840 return AddEntry(object, HeapEntry::kBigInt, "bigint");
841 } else if (object.IsCode()) {
842 return AddEntry(object, HeapEntry::kCode, "");
843 } else if (object.IsSharedFunctionInfo()) {
844 String name = SharedFunctionInfo::cast(object).Name();
845 return AddEntry(object, HeapEntry::kCode, names_->GetName(name));
846 } else if (object.IsScript()) {
847 Object name = Script::cast(object).name();
848 return AddEntry(object, HeapEntry::kCode,
850 } else if (object.IsNativeContext()) {
851 return AddEntry(object, HeapEntry::kHidden, "system / NativeContext");
852 } else if (object.IsContext()) {
853 return AddEntry(object, HeapEntry::kObject, "system / Context");
854 } else if (object.IsHeapNumber()) {
855 return AddEntry(object, HeapEntry::kHeapNumber, "heap number");
857 return AddEntry(object, GetSystemEntryType(object),
858 GetSystemEntryName(object));
861 HeapEntry* V8HeapExplorer::AddEntry(HeapObject object, HeapEntry::Type type,
867 return AddEntry(object.address(), type, name, object.Size(cage_base));
885 const char* V8HeapExplorer::GetSystemEntryName(HeapObject object) {
886 if (object.IsMap()) {
887 switch (Map::cast(object).instance_type()) {
896 InstanceType type = object.map().instance_type();
928 HeapEntry::Type V8HeapExplorer::GetSystemEntryType(HeapObject object) {
929 InstanceType type = object.map().instance_type();
990 void VisitMapPointer(HeapObject object) override {
991 VisitSlotImpl(cage_base(), object.map_slot());
996 // all the slots must point inside the object.
1015 HeapObject object = rinfo->target_object(cage_base());
1016 if (host.IsWeakObject(object)) {
1017 generator_->SetWeakReference(parent_, next_index_++, object, {});
1019 VisitHeapObjectImpl(object, -1);
1212 TagObject(js_obj.raw_properties_or_hash(), "(object properties)");
1216 TagObject(js_obj.elements(), "(object elements)");
1608 // Setup a reference to a native memory backing_store object.
1717 MaybeObject object = *slot;
1719 if (object->GetHeapObjectIfWeak(&heap_object)) {
1721 } else if (object->GetHeapObjectIfStrong(&heap_object)) {
1731 MaybeObject object = array.Get(i);
1733 if (object->GetHeapObjectIfWeak(&heap_object)) {
1735 } else if (object->GetHeapObjectIfStrong(&heap_object)) {
1875 String V8HeapExplorer::GetConstructorName(Isolate* isolate, JSObject object) {
1876 if (object.IsJSFunction()) return ReadOnlyRoots(isolate).closure_string();
1879 return *JSReceiver::GetConstructorName(isolate, handle(object, isolate));
1902 FullObjectSlot object) override {
1904 explorer_->TagBuiltinCodeObject(CodeT::cast(*object), description);
1907 *object);
1971 // first. Otherwise a particular JSFunction object could set
2022 // Ensure visited_fields_ doesn't leak to the next object.
2027 // Extract location for specific object types
2037 bool V8HeapExplorer::IsEssentialObject(Object object) {
2040 return object.IsHeapObject() && !object.IsOddball(isolate) &&
2041 object != roots.empty_byte_array() &&
2042 object != roots.empty_fixed_array() &&
2043 object != roots.empty_weak_fixed_array() &&
2044 object != roots.empty_descriptor_array() &&
2045 object != roots.fixed_array_map() && object != roots.cell_map() &&
2046 object != roots.global_property_cell_map() &&
2047 object != roots.shared_function_info_map() &&
2048 object != roots.free_space_map() &&
2049 object != roots.one_pointer_filler_map() &&
2050 object != roots.two_pointer_filler_map();
2254 // Add a shortcut to JS global object reference at snapshot root.
2267 const char* V8HeapExplorer::GetStrongGcSubrootName(Object object) {
2277 auto it = strong_gc_subroot_names_.find(object);
2384 explicit V8NodeImpl(Object object) : object_(object) {}
2403 Handle<Object> object = v8::Utils::OpenHandle(*value);
2404 DCHECK(!object.is_null());
2405 return AddNode(std::unique_ptr<Node>(new V8NodeImpl(*object)));
2508 Object object = v8_node->GetObject();
2509 DCHECK(!object.IsSmi());
2511 HeapObject heap_object = HeapObject::cast(object);
2539 Object object =
2541 if (object.IsSmi()) return nullptr;
2543 reinterpret_cast<void*>(Object::cast(object).ptr()));
2885 // The object describing node serialization layout.
2906 JSON_S("object") ","