Add InstanceType for EphemeronHashTable

This will allow the GC to differentiate between regular HashTables and EphemeronHashTables.

Bug: chromium:844008
Change-Id: I2f9009ac25eb117de03786b110dd362b829c5e9e
Reviewed-on: https://chromium-review.googlesource.com/1089066
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Cr-Commit-Position: refs/heads/master@{#53577}
This commit is contained in:
Dominik Inführ 2018-06-07 12:47:49 +02:00 committed by Commit Bot
parent 2725f3957e
commit 3b93e695bb
15 changed files with 178 additions and 148 deletions

View File

@ -254,6 +254,7 @@ Type::bitset BitsetType::Lub(HeapReferenceType const& type) {
case ACCESSOR_PAIR_TYPE:
case FIXED_ARRAY_TYPE:
case HASH_TABLE_TYPE:
case EPHEMERON_HASH_TABLE_TYPE:
case WEAK_FIXED_ARRAY_TYPE:
case WEAK_ARRAY_LIST_TYPE:
case FIXED_DOUBLE_ARRAY_TYPE:

View File

@ -140,6 +140,7 @@ using v8::MemoryPressureLevel;
V(Map, string_table_map, StringTableMap) \
V(Map, weak_fixed_array_map, WeakFixedArrayMap) \
V(Map, weak_array_list_map, WeakArrayListMap) \
V(Map, ephemeron_hash_table_map, EphemeronHashTableMap) \
/* String maps */ \
V(Map, native_source_string_map, NativeSourceStringMap) \
V(Map, string_map, StringMap) \
@ -326,6 +327,7 @@ using v8::MemoryPressureLevel;
V(CodeMap) \
V(DebugEvaluateContextMap) \
V(DescriptorArrayMap) \
V(EphemeronHashTableMap) \
V(EmptyByteArray) \
V(EmptyDescriptorArray) \
V(EmptyFixedArray) \

View File

@ -103,7 +103,7 @@ int MarkingVisitor<fixed_array_mode, retaining_path_mode, MarkingState>::
this);
// Partially initialized weak collection is enqueued, but table is ignored.
if (!weak_collection->table()->IsHashTable()) return size;
if (!weak_collection->table()->IsEphemeronHashTable()) return size;
// Mark the backing hash table without pushing it on the marking stack.
Object** slot =

View File

@ -1878,6 +1878,8 @@ void MarkCompactCollector::ProcessWeakCollections() {
visitor.VisitPointer(table, value_slot);
}
}
} else {
DCHECK(weak_collection->table()->IsUndefined(isolate()));
}
weak_collection_obj = weak_collection->next();
}
@ -1899,6 +1901,8 @@ void MarkCompactCollector::ClearWeakCollections() {
table->RemoveEntry(i);
}
}
} else {
DCHECK(weak_collection->table()->IsUndefined(isolate()));
}
weak_collection_obj = weak_collection->next();
weak_collection->set_next(heap()->undefined_value());

View File

@ -458,6 +458,8 @@ bool Heap::CreateInitialMaps() {
ALLOCATE_VARSIZE_MAP(HASH_TABLE_TYPE, simple_number_dictionary)
ALLOCATE_VARSIZE_MAP(HASH_TABLE_TYPE, string_table)
ALLOCATE_VARSIZE_MAP(EPHEMERON_HASH_TABLE_TYPE, ephemeron_hash_table)
ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, array_list)
ALLOCATE_VARSIZE_MAP(FUNCTION_CONTEXT_TYPE, function_context)

View File

@ -602,6 +602,7 @@ ReturnType BodyDescriptorApply(InstanceType type, T1 p1, T2 p2, T3 p3, T4 p4) {
case FIXED_ARRAY_TYPE:
case BOILERPLATE_DESCRIPTION_TYPE:
case HASH_TABLE_TYPE:
case EPHEMERON_HASH_TABLE_TYPE:
case SCOPE_INFO_TYPE:
case BLOCK_CONTEXT_TYPE:
case CATCH_CONTEXT_TYPE:

View File

@ -132,6 +132,7 @@ void HeapObject::HeapObjectVerify() {
CallHandlerInfo::cast(this)->CallHandlerInfoVerify();
break;
case HASH_TABLE_TYPE:
case EPHEMERON_HASH_TABLE_TYPE:
case BOILERPLATE_DESCRIPTION_TYPE:
case FIXED_ARRAY_TYPE:
case SCOPE_INFO_TYPE:
@ -1186,7 +1187,7 @@ void JSWeakMap::JSWeakMapVerify() {
CHECK(IsJSWeakMap());
JSObjectVerify();
VerifyHeapPointer(table());
CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate()));
CHECK(table()->IsEphemeronHashTable() || table()->IsUndefined(GetIsolate()));
}
void JSArrayIterator::JSArrayIteratorVerify() {
@ -1227,7 +1228,7 @@ void JSWeakSet::JSWeakSetVerify() {
CHECK(IsJSWeakSet());
JSObjectVerify();
VerifyHeapPointer(table());
CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate()));
CHECK(table()->IsEphemeronHashTable() || table()->IsUndefined(GetIsolate()));
}
void Microtask::MicrotaskVerify() { CHECK(IsMicrotask()); }

View File

@ -83,6 +83,7 @@ TYPE_CHECKER(CodeDataContainer, CODE_DATA_CONTAINER_TYPE)
TYPE_CHECKER(ConstantElementsPair, TUPLE2_TYPE)
TYPE_CHECKER(CoverageInfo, FIXED_ARRAY_TYPE)
TYPE_CHECKER(DescriptorArray, DESCRIPTOR_ARRAY_TYPE)
TYPE_CHECKER(EphemeronHashTable, EPHEMERON_HASH_TABLE_TYPE)
TYPE_CHECKER(FeedbackCell, FEEDBACK_CELL_TYPE)
TYPE_CHECKER(FeedbackMetadata, FEEDBACK_METADATA_TYPE)
TYPE_CHECKER(FeedbackVector, FEEDBACK_VECTOR_TYPE)
@ -505,8 +506,6 @@ bool HeapObject::IsMapCache() const { return IsHashTable(); }
bool HeapObject::IsObjectHashTable() const { return IsHashTable(); }
bool HeapObject::IsEphemeronHashTable() const { return IsHashTable(); }
bool HeapObject::IsOrderedHashSet() const {
return map() == GetHeap()->ordered_hash_set_map();
}

View File

@ -98,6 +98,7 @@ void HeapObject::HeapObjectPrint(std::ostream& os) { // NOLINT
FixedDoubleArray::cast(this)->FixedDoubleArrayPrint(os);
break;
case HASH_TABLE_TYPE:
case EPHEMERON_HASH_TABLE_TYPE:
case FIXED_ARRAY_TYPE:
case BLOCK_CONTEXT_TYPE:
case CATCH_CONTEXT_TYPE:
@ -863,8 +864,15 @@ void PrintWeakArrayListWithHeader(std::ostream& os, WeakArrayList* array) {
} // namespace
void FixedArray::FixedArrayPrint(std::ostream& os) { // NOLINT
PrintFixedArrayWithHeader(os, this,
IsHashTable() ? "HashTable" : "FixedArray");
const char* name = "FixedArray";
if (IsHashTable()) {
name = "HashTable";
} else if (IsEphemeronHashTable()) {
name = "EphemeronHashTable";
}
PrintFixedArrayWithHeader(os, this, name);
}
void BoilerplateDescription::BoilerplateDescriptionPrint(std::ostream& os) {

View File

@ -2979,6 +2979,7 @@ VisitorId Map::GetVisitorId(Map* map) {
case FIXED_ARRAY_TYPE:
case BOILERPLATE_DESCRIPTION_TYPE:
case HASH_TABLE_TYPE:
case EPHEMERON_HASH_TABLE_TYPE:
case SCOPE_INFO_TYPE:
case BLOCK_CONTEXT_TYPE:
case CATCH_CONTEXT_TYPE:

View File

@ -416,6 +416,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1;
V(FIXED_ARRAY_TYPE) \
V(BOILERPLATE_DESCRIPTION_TYPE) \
V(HASH_TABLE_TYPE) \
V(EPHEMERON_HASH_TABLE_TYPE) \
V(SCOPE_INFO_TYPE) \
\
V(BLOCK_CONTEXT_TYPE) \
@ -799,6 +800,7 @@ enum InstanceType : uint16_t {
FIXED_ARRAY_TYPE, // FIRST_FIXED_ARRAY_TYPE
BOILERPLATE_DESCRIPTION_TYPE,
HASH_TABLE_TYPE,
EPHEMERON_HASH_TABLE_TYPE,
SCOPE_INFO_TYPE,
BLOCK_CONTEXT_TYPE, // FIRST_CONTEXT_TYPE
CATCH_CONTEXT_TYPE,

View File

@ -58,6 +58,10 @@ int BaseShape<Key>::GetMapRootIndex() {
return Heap::kHashTableMapRootIndex;
}
int EphemeronHashTableShape::GetMapRootIndex() {
return Heap::kEphemeronHashTableMapRootIndex;
}
template <typename Derived, typename Shape>
int HashTable<Derived, Shape>::FindEntry(Key key) {
return FindEntry(GetIsolate(), key);

View File

@ -312,7 +312,10 @@ class ObjectHashTable
DECL_CAST(ObjectHashTable)
};
typedef ObjectHashTableShape EphemeronHashTableShape;
class EphemeronHashTableShape : public ObjectHashTableShape {
public:
static inline int GetMapRootIndex();
};
// EphemeronHashTable is similar to ObjectHashTable but gets special treatment
// by the GC. The GC treats its entries as ephemerons: both key and value are

View File

@ -1037,7 +1037,7 @@ void V8HeapExplorer::ExtractJSCollectionReferences(int entry,
void V8HeapExplorer::ExtractJSWeakCollectionReferences(int entry,
JSWeakCollection* obj) {
if (obj->table()->IsHashTable()) {
if (obj->table()->IsEphemeronHashTable()) {
EphemeronHashTable* table = EphemeronHashTable::cast(obj->table());
TagFixedArraySubType(table, JS_WEAK_COLLECTION_SUB_TYPE);
}

View File

@ -87,33 +87,34 @@ INSTANCE_TYPES = {
183: "FIXED_ARRAY_TYPE",
184: "BOILERPLATE_DESCRIPTION_TYPE",
185: "HASH_TABLE_TYPE",
186: "SCOPE_INFO_TYPE",
187: "BLOCK_CONTEXT_TYPE",
188: "CATCH_CONTEXT_TYPE",
189: "DEBUG_EVALUATE_CONTEXT_TYPE",
190: "EVAL_CONTEXT_TYPE",
191: "FUNCTION_CONTEXT_TYPE",
192: "MODULE_CONTEXT_TYPE",
193: "NATIVE_CONTEXT_TYPE",
194: "SCRIPT_CONTEXT_TYPE",
195: "WITH_CONTEXT_TYPE",
196: "WEAK_FIXED_ARRAY_TYPE",
197: "DESCRIPTOR_ARRAY_TYPE",
198: "TRANSITION_ARRAY_TYPE",
199: "CALL_HANDLER_INFO_TYPE",
200: "CELL_TYPE",
201: "CODE_DATA_CONTAINER_TYPE",
202: "FEEDBACK_CELL_TYPE",
203: "FEEDBACK_VECTOR_TYPE",
204: "LOAD_HANDLER_TYPE",
205: "PROPERTY_ARRAY_TYPE",
206: "PROPERTY_CELL_TYPE",
207: "SHARED_FUNCTION_INFO_TYPE",
208: "SMALL_ORDERED_HASH_MAP_TYPE",
209: "SMALL_ORDERED_HASH_SET_TYPE",
210: "STORE_HANDLER_TYPE",
211: "WEAK_CELL_TYPE",
212: "WEAK_ARRAY_LIST_TYPE",
186: "EPHEMERON_HASH_TABLE_TYPE",
187: "SCOPE_INFO_TYPE",
188: "BLOCK_CONTEXT_TYPE",
189: "CATCH_CONTEXT_TYPE",
190: "DEBUG_EVALUATE_CONTEXT_TYPE",
191: "EVAL_CONTEXT_TYPE",
192: "FUNCTION_CONTEXT_TYPE",
193: "MODULE_CONTEXT_TYPE",
194: "NATIVE_CONTEXT_TYPE",
195: "SCRIPT_CONTEXT_TYPE",
196: "WITH_CONTEXT_TYPE",
197: "WEAK_FIXED_ARRAY_TYPE",
198: "DESCRIPTOR_ARRAY_TYPE",
199: "TRANSITION_ARRAY_TYPE",
200: "CALL_HANDLER_INFO_TYPE",
201: "CELL_TYPE",
202: "CODE_DATA_CONTAINER_TYPE",
203: "FEEDBACK_CELL_TYPE",
204: "FEEDBACK_VECTOR_TYPE",
205: "LOAD_HANDLER_TYPE",
206: "PROPERTY_ARRAY_TYPE",
207: "PROPERTY_CELL_TYPE",
208: "SHARED_FUNCTION_INFO_TYPE",
209: "SMALL_ORDERED_HASH_MAP_TYPE",
210: "SMALL_ORDERED_HASH_SET_TYPE",
211: "STORE_HANDLER_TYPE",
212: "WEAK_CELL_TYPE",
213: "WEAK_ARRAY_LIST_TYPE",
1024: "JS_PROXY_TYPE",
1025: "JS_GLOBAL_OBJECT_TYPE",
1026: "JS_GLOBAL_PROXY_TYPE",
@ -163,9 +164,9 @@ KNOWN_MAPS = {
("RO_SPACE", 0x02201): (138, "FreeSpaceMap"),
("RO_SPACE", 0x02259): (132, "MetaMap"),
("RO_SPACE", 0x022e1): (131, "NullMap"),
("RO_SPACE", 0x02359): (197, "DescriptorArrayMap"),
("RO_SPACE", 0x02359): (198, "DescriptorArrayMap"),
("RO_SPACE", 0x023c1): (183, "FixedArrayMap"),
("RO_SPACE", 0x02429): (211, "WeakCellMap"),
("RO_SPACE", 0x02429): (212, "WeakCellMap"),
("RO_SPACE", 0x024d1): (152, "OnePointerFillerMap"),
("RO_SPACE", 0x02539): (152, "TwoPointerFillerMap"),
("RO_SPACE", 0x025d1): (131, "UninitializedMap"),
@ -179,120 +180,121 @@ KNOWN_MAPS = {
("RO_SPACE", 0x02ad9): (185, "HashTableMap"),
("RO_SPACE", 0x02b41): (128, "SymbolMap"),
("RO_SPACE", 0x02ba9): (72, "OneByteStringMap"),
("RO_SPACE", 0x02c11): (186, "ScopeInfoMap"),
("RO_SPACE", 0x02c79): (207, "SharedFunctionInfoMap"),
("RO_SPACE", 0x02c11): (187, "ScopeInfoMap"),
("RO_SPACE", 0x02c79): (208, "SharedFunctionInfoMap"),
("RO_SPACE", 0x02ce1): (133, "CodeMap"),
("RO_SPACE", 0x02d49): (191, "FunctionContextMap"),
("RO_SPACE", 0x02db1): (200, "CellMap"),
("RO_SPACE", 0x02e19): (206, "GlobalPropertyCellMap"),
("RO_SPACE", 0x02d49): (192, "FunctionContextMap"),
("RO_SPACE", 0x02db1): (201, "CellMap"),
("RO_SPACE", 0x02e19): (207, "GlobalPropertyCellMap"),
("RO_SPACE", 0x02e81): (135, "ForeignMap"),
("RO_SPACE", 0x02ee9): (198, "TransitionArrayMap"),
("RO_SPACE", 0x02f51): (203, "FeedbackVectorMap"),
("RO_SPACE", 0x02ee9): (199, "TransitionArrayMap"),
("RO_SPACE", 0x02f51): (204, "FeedbackVectorMap"),
("RO_SPACE", 0x02ff9): (131, "ArgumentsMarkerMap"),
("RO_SPACE", 0x030b9): (131, "ExceptionMap"),
("RO_SPACE", 0x03179): (131, "TerminationExceptionMap"),
("RO_SPACE", 0x03241): (131, "OptimizedOutMap"),
("RO_SPACE", 0x03301): (131, "StaleRegisterMap"),
("RO_SPACE", 0x03391): (193, "NativeContextMap"),
("RO_SPACE", 0x033f9): (192, "ModuleContextMap"),
("RO_SPACE", 0x03461): (190, "EvalContextMap"),
("RO_SPACE", 0x034c9): (194, "ScriptContextMap"),
("RO_SPACE", 0x03531): (187, "BlockContextMap"),
("RO_SPACE", 0x03599): (188, "CatchContextMap"),
("RO_SPACE", 0x03601): (195, "WithContextMap"),
("RO_SPACE", 0x03669): (189, "DebugEvaluateContextMap"),
("RO_SPACE", 0x03391): (194, "NativeContextMap"),
("RO_SPACE", 0x033f9): (193, "ModuleContextMap"),
("RO_SPACE", 0x03461): (191, "EvalContextMap"),
("RO_SPACE", 0x034c9): (195, "ScriptContextMap"),
("RO_SPACE", 0x03531): (188, "BlockContextMap"),
("RO_SPACE", 0x03599): (189, "CatchContextMap"),
("RO_SPACE", 0x03601): (196, "WithContextMap"),
("RO_SPACE", 0x03669): (190, "DebugEvaluateContextMap"),
("RO_SPACE", 0x036d1): (183, "ScriptContextTableMap"),
("RO_SPACE", 0x03739): (151, "FeedbackMetadataArrayMap"),
("RO_SPACE", 0x037a1): (183, "ArrayListMap"),
("RO_SPACE", 0x03809): (130, "BigIntMap"),
("RO_SPACE", 0x03871): (184, "BoilerplateDescriptionMap"),
("RO_SPACE", 0x038d9): (137, "BytecodeArrayMap"),
("RO_SPACE", 0x03941): (201, "CodeDataContainerMap"),
("RO_SPACE", 0x03941): (202, "CodeDataContainerMap"),
("RO_SPACE", 0x039a9): (150, "FixedDoubleArrayMap"),
("RO_SPACE", 0x03a11): (185, "GlobalDictionaryMap"),
("RO_SPACE", 0x03a79): (202, "ManyClosuresCellMap"),
("RO_SPACE", 0x03a79): (203, "ManyClosuresCellMap"),
("RO_SPACE", 0x03ae1): (183, "ModuleInfoMap"),
("RO_SPACE", 0x03b49): (134, "MutableHeapNumberMap"),
("RO_SPACE", 0x03bb1): (185, "NameDictionaryMap"),
("RO_SPACE", 0x03c19): (202, "NoClosuresCellMap"),
("RO_SPACE", 0x03c19): (203, "NoClosuresCellMap"),
("RO_SPACE", 0x03c81): (185, "NumberDictionaryMap"),
("RO_SPACE", 0x03ce9): (202, "OneClosureCellMap"),
("RO_SPACE", 0x03ce9): (203, "OneClosureCellMap"),
("RO_SPACE", 0x03d51): (185, "OrderedHashMapMap"),
("RO_SPACE", 0x03db9): (185, "OrderedHashSetMap"),
("RO_SPACE", 0x03e21): (205, "PropertyArrayMap"),
("RO_SPACE", 0x03e89): (199, "SideEffectCallHandlerInfoMap"),
("RO_SPACE", 0x03ef1): (199, "SideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x03f59): (199, "NextCallSideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x03e21): (206, "PropertyArrayMap"),
("RO_SPACE", 0x03e89): (200, "SideEffectCallHandlerInfoMap"),
("RO_SPACE", 0x03ef1): (200, "SideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x03f59): (200, "NextCallSideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x03fc1): (185, "SimpleNumberDictionaryMap"),
("RO_SPACE", 0x04029): (183, "SloppyArgumentsElementsMap"),
("RO_SPACE", 0x04091): (208, "SmallOrderedHashMapMap"),
("RO_SPACE", 0x040f9): (209, "SmallOrderedHashSetMap"),
("RO_SPACE", 0x04091): (209, "SmallOrderedHashMapMap"),
("RO_SPACE", 0x040f9): (210, "SmallOrderedHashSetMap"),
("RO_SPACE", 0x04161): (185, "StringTableMap"),
("RO_SPACE", 0x041c9): (196, "WeakFixedArrayMap"),
("RO_SPACE", 0x04231): (212, "WeakArrayListMap"),
("RO_SPACE", 0x04299): (106, "NativeSourceStringMap"),
("RO_SPACE", 0x04301): (64, "StringMap"),
("RO_SPACE", 0x04369): (73, "ConsOneByteStringMap"),
("RO_SPACE", 0x043d1): (65, "ConsStringMap"),
("RO_SPACE", 0x04439): (77, "ThinOneByteStringMap"),
("RO_SPACE", 0x044a1): (69, "ThinStringMap"),
("RO_SPACE", 0x04509): (67, "SlicedStringMap"),
("RO_SPACE", 0x04571): (75, "SlicedOneByteStringMap"),
("RO_SPACE", 0x045d9): (66, "ExternalStringMap"),
("RO_SPACE", 0x04641): (82, "ExternalStringWithOneByteDataMap"),
("RO_SPACE", 0x046a9): (74, "ExternalOneByteStringMap"),
("RO_SPACE", 0x04711): (98, "ShortExternalStringMap"),
("RO_SPACE", 0x04779): (114, "ShortExternalStringWithOneByteDataMap"),
("RO_SPACE", 0x047e1): (0, "InternalizedStringMap"),
("RO_SPACE", 0x04849): (2, "ExternalInternalizedStringMap"),
("RO_SPACE", 0x048b1): (18, "ExternalInternalizedStringWithOneByteDataMap"),
("RO_SPACE", 0x04919): (10, "ExternalOneByteInternalizedStringMap"),
("RO_SPACE", 0x04981): (34, "ShortExternalInternalizedStringMap"),
("RO_SPACE", 0x049e9): (50, "ShortExternalInternalizedStringWithOneByteDataMap"),
("RO_SPACE", 0x04a51): (42, "ShortExternalOneByteInternalizedStringMap"),
("RO_SPACE", 0x04ab9): (106, "ShortExternalOneByteStringMap"),
("RO_SPACE", 0x04b21): (140, "FixedUint8ArrayMap"),
("RO_SPACE", 0x04b89): (139, "FixedInt8ArrayMap"),
("RO_SPACE", 0x04bf1): (142, "FixedUint16ArrayMap"),
("RO_SPACE", 0x04c59): (141, "FixedInt16ArrayMap"),
("RO_SPACE", 0x04cc1): (144, "FixedUint32ArrayMap"),
("RO_SPACE", 0x04d29): (143, "FixedInt32ArrayMap"),
("RO_SPACE", 0x04d91): (145, "FixedFloat32ArrayMap"),
("RO_SPACE", 0x04df9): (146, "FixedFloat64ArrayMap"),
("RO_SPACE", 0x04e61): (147, "FixedUint8ClampedArrayMap"),
("RO_SPACE", 0x04ec9): (149, "FixedBigUint64ArrayMap"),
("RO_SPACE", 0x04f31): (148, "FixedBigInt64ArrayMap"),
("RO_SPACE", 0x04f99): (131, "SelfReferenceMarkerMap"),
("RO_SPACE", 0x05019): (172, "Tuple2Map"),
("RO_SPACE", 0x05211): (170, "ScriptMap"),
("RO_SPACE", 0x053d9): (162, "InterceptorInfoMap"),
("RO_SPACE", 0x09d21): (154, "AccessorInfoMap"),
("RO_SPACE", 0x09f31): (153, "AccessCheckInfoMap"),
("RO_SPACE", 0x09f99): (155, "AccessorPairMap"),
("RO_SPACE", 0x0a001): (156, "AliasedArgumentsEntryMap"),
("RO_SPACE", 0x0a069): (157, "AllocationMementoMap"),
("RO_SPACE", 0x0a0d1): (158, "AllocationSiteMap"),
("RO_SPACE", 0x0a139): (159, "AsyncGeneratorRequestMap"),
("RO_SPACE", 0x0a1a1): (160, "DebugInfoMap"),
("RO_SPACE", 0x0a209): (161, "FunctionTemplateInfoMap"),
("RO_SPACE", 0x0a271): (163, "InterpreterDataMap"),
("RO_SPACE", 0x0a2d9): (164, "ModuleInfoEntryMap"),
("RO_SPACE", 0x0a341): (165, "ModuleMap"),
("RO_SPACE", 0x0a3a9): (166, "ObjectTemplateInfoMap"),
("RO_SPACE", 0x0a411): (167, "PromiseCapabilityMap"),
("RO_SPACE", 0x0a479): (168, "PromiseReactionMap"),
("RO_SPACE", 0x0a4e1): (169, "PrototypeInfoMap"),
("RO_SPACE", 0x0a549): (171, "StackFrameInfoMap"),
("RO_SPACE", 0x0a5b1): (173, "Tuple3Map"),
("RO_SPACE", 0x0a619): (174, "WasmCompiledModuleMap"),
("RO_SPACE", 0x0a681): (175, "WasmDebugInfoMap"),
("RO_SPACE", 0x0a6e9): (176, "WasmExportedFunctionDataMap"),
("RO_SPACE", 0x0a751): (177, "WasmSharedModuleDataMap"),
("RO_SPACE", 0x0a7b9): (178, "CallableTaskMap"),
("RO_SPACE", 0x0a821): (179, "CallbackTaskMap"),
("RO_SPACE", 0x0a889): (180, "PromiseFulfillReactionJobTaskMap"),
("RO_SPACE", 0x0a8f1): (181, "PromiseRejectReactionJobTaskMap"),
("RO_SPACE", 0x0a959): (182, "PromiseResolveThenableJobTaskMap"),
("RO_SPACE", 0x041c9): (197, "WeakFixedArrayMap"),
("RO_SPACE", 0x04231): (213, "WeakArrayListMap"),
("RO_SPACE", 0x04299): (186, "EphemeronHashTableMap"),
("RO_SPACE", 0x04301): (106, "NativeSourceStringMap"),
("RO_SPACE", 0x04369): (64, "StringMap"),
("RO_SPACE", 0x043d1): (73, "ConsOneByteStringMap"),
("RO_SPACE", 0x04439): (65, "ConsStringMap"),
("RO_SPACE", 0x044a1): (77, "ThinOneByteStringMap"),
("RO_SPACE", 0x04509): (69, "ThinStringMap"),
("RO_SPACE", 0x04571): (67, "SlicedStringMap"),
("RO_SPACE", 0x045d9): (75, "SlicedOneByteStringMap"),
("RO_SPACE", 0x04641): (66, "ExternalStringMap"),
("RO_SPACE", 0x046a9): (82, "ExternalStringWithOneByteDataMap"),
("RO_SPACE", 0x04711): (74, "ExternalOneByteStringMap"),
("RO_SPACE", 0x04779): (98, "ShortExternalStringMap"),
("RO_SPACE", 0x047e1): (114, "ShortExternalStringWithOneByteDataMap"),
("RO_SPACE", 0x04849): (0, "InternalizedStringMap"),
("RO_SPACE", 0x048b1): (2, "ExternalInternalizedStringMap"),
("RO_SPACE", 0x04919): (18, "ExternalInternalizedStringWithOneByteDataMap"),
("RO_SPACE", 0x04981): (10, "ExternalOneByteInternalizedStringMap"),
("RO_SPACE", 0x049e9): (34, "ShortExternalInternalizedStringMap"),
("RO_SPACE", 0x04a51): (50, "ShortExternalInternalizedStringWithOneByteDataMap"),
("RO_SPACE", 0x04ab9): (42, "ShortExternalOneByteInternalizedStringMap"),
("RO_SPACE", 0x04b21): (106, "ShortExternalOneByteStringMap"),
("RO_SPACE", 0x04b89): (140, "FixedUint8ArrayMap"),
("RO_SPACE", 0x04bf1): (139, "FixedInt8ArrayMap"),
("RO_SPACE", 0x04c59): (142, "FixedUint16ArrayMap"),
("RO_SPACE", 0x04cc1): (141, "FixedInt16ArrayMap"),
("RO_SPACE", 0x04d29): (144, "FixedUint32ArrayMap"),
("RO_SPACE", 0x04d91): (143, "FixedInt32ArrayMap"),
("RO_SPACE", 0x04df9): (145, "FixedFloat32ArrayMap"),
("RO_SPACE", 0x04e61): (146, "FixedFloat64ArrayMap"),
("RO_SPACE", 0x04ec9): (147, "FixedUint8ClampedArrayMap"),
("RO_SPACE", 0x04f31): (149, "FixedBigUint64ArrayMap"),
("RO_SPACE", 0x04f99): (148, "FixedBigInt64ArrayMap"),
("RO_SPACE", 0x05001): (131, "SelfReferenceMarkerMap"),
("RO_SPACE", 0x05081): (172, "Tuple2Map"),
("RO_SPACE", 0x05279): (170, "ScriptMap"),
("RO_SPACE", 0x05441): (162, "InterceptorInfoMap"),
("RO_SPACE", 0x09d89): (154, "AccessorInfoMap"),
("RO_SPACE", 0x09f99): (153, "AccessCheckInfoMap"),
("RO_SPACE", 0x0a001): (155, "AccessorPairMap"),
("RO_SPACE", 0x0a069): (156, "AliasedArgumentsEntryMap"),
("RO_SPACE", 0x0a0d1): (157, "AllocationMementoMap"),
("RO_SPACE", 0x0a139): (158, "AllocationSiteMap"),
("RO_SPACE", 0x0a1a1): (159, "AsyncGeneratorRequestMap"),
("RO_SPACE", 0x0a209): (160, "DebugInfoMap"),
("RO_SPACE", 0x0a271): (161, "FunctionTemplateInfoMap"),
("RO_SPACE", 0x0a2d9): (163, "InterpreterDataMap"),
("RO_SPACE", 0x0a341): (164, "ModuleInfoEntryMap"),
("RO_SPACE", 0x0a3a9): (165, "ModuleMap"),
("RO_SPACE", 0x0a411): (166, "ObjectTemplateInfoMap"),
("RO_SPACE", 0x0a479): (167, "PromiseCapabilityMap"),
("RO_SPACE", 0x0a4e1): (168, "PromiseReactionMap"),
("RO_SPACE", 0x0a549): (169, "PrototypeInfoMap"),
("RO_SPACE", 0x0a5b1): (171, "StackFrameInfoMap"),
("RO_SPACE", 0x0a619): (173, "Tuple3Map"),
("RO_SPACE", 0x0a681): (174, "WasmCompiledModuleMap"),
("RO_SPACE", 0x0a6e9): (175, "WasmDebugInfoMap"),
("RO_SPACE", 0x0a751): (176, "WasmExportedFunctionDataMap"),
("RO_SPACE", 0x0a7b9): (177, "WasmSharedModuleDataMap"),
("RO_SPACE", 0x0a821): (178, "CallableTaskMap"),
("RO_SPACE", 0x0a889): (179, "CallbackTaskMap"),
("RO_SPACE", 0x0a8f1): (180, "PromiseFulfillReactionJobTaskMap"),
("RO_SPACE", 0x0a959): (181, "PromiseRejectReactionJobTaskMap"),
("RO_SPACE", 0x0a9c1): (182, "PromiseResolveThenableJobTaskMap"),
("MAP_SPACE", 0x02201): (1057, "ExternalMap"),
("MAP_SPACE", 0x02259): (1072, "JSMessageObjectMap"),
}
@ -316,26 +318,26 @@ KNOWN_OBJECTS = {
("RO_SPACE", 0x03149): "TerminationException",
("RO_SPACE", 0x03211): "OptimizedOut",
("RO_SPACE", 0x032d1): "StaleRegister",
("RO_SPACE", 0x05091): "EmptyByteArray",
("RO_SPACE", 0x050b1): "EmptyFixedUint8Array",
("RO_SPACE", 0x050d1): "EmptyFixedInt8Array",
("RO_SPACE", 0x050f1): "EmptyFixedUint16Array",
("RO_SPACE", 0x05111): "EmptyFixedInt16Array",
("RO_SPACE", 0x05131): "EmptyFixedUint32Array",
("RO_SPACE", 0x05151): "EmptyFixedInt32Array",
("RO_SPACE", 0x05171): "EmptyFixedFloat32Array",
("RO_SPACE", 0x05191): "EmptyFixedFloat64Array",
("RO_SPACE", 0x051b1): "EmptyFixedUint8ClampedArray",
("RO_SPACE", 0x05289): "EmptySloppyArgumentsElements",
("RO_SPACE", 0x052a9): "EmptySlowElementDictionary",
("RO_SPACE", 0x052f1): "EmptyOrderedHashMap",
("RO_SPACE", 0x05319): "EmptyOrderedHashSet",
("RO_SPACE", 0x05351): "EmptyPropertyCell",
("RO_SPACE", 0x05379): "EmptyWeakCell",
("RO_SPACE", 0x05459): "InfinityValue",
("RO_SPACE", 0x05469): "MinusZeroValue",
("RO_SPACE", 0x05479): "MinusInfinityValue",
("RO_SPACE", 0x05489): "SelfReferenceMarker",
("RO_SPACE", 0x050f9): "EmptyByteArray",
("RO_SPACE", 0x05119): "EmptyFixedUint8Array",
("RO_SPACE", 0x05139): "EmptyFixedInt8Array",
("RO_SPACE", 0x05159): "EmptyFixedUint16Array",
("RO_SPACE", 0x05179): "EmptyFixedInt16Array",
("RO_SPACE", 0x05199): "EmptyFixedUint32Array",
("RO_SPACE", 0x051b9): "EmptyFixedInt32Array",
("RO_SPACE", 0x051d9): "EmptyFixedFloat32Array",
("RO_SPACE", 0x051f9): "EmptyFixedFloat64Array",
("RO_SPACE", 0x05219): "EmptyFixedUint8ClampedArray",
("RO_SPACE", 0x052f1): "EmptySloppyArgumentsElements",
("RO_SPACE", 0x05311): "EmptySlowElementDictionary",
("RO_SPACE", 0x05359): "EmptyOrderedHashMap",
("RO_SPACE", 0x05381): "EmptyOrderedHashSet",
("RO_SPACE", 0x053b9): "EmptyPropertyCell",
("RO_SPACE", 0x053e1): "EmptyWeakCell",
("RO_SPACE", 0x054c1): "InfinityValue",
("RO_SPACE", 0x054d1): "MinusZeroValue",
("RO_SPACE", 0x054e1): "MinusInfinityValue",
("RO_SPACE", 0x054f1): "SelfReferenceMarker",
("OLD_SPACE", 0x02211): "EmptyScript",
("OLD_SPACE", 0x02299): "ManyClosuresCell",
("OLD_SPACE", 0x022b9): "NoElementsProtector",