[wasm] Introduce dedicated WasmExceptionTag type.

This introduces a dedicated instance type for exception tags. The main
motivation is to reduce their footprint and getting rid of a temporary
workaround that used the {JSObject} type for this purpose.

R=clemensh@chromium.org
BUG=v8:8091

Change-Id: Id5678bce513f2ac086c7380bd803011b11d5050e
Reviewed-on: https://chromium-review.googlesource.com/c/1354464
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57943}
This commit is contained in:
Michael Starzinger 2018-11-29 13:23:50 +01:00 committed by Commit Bot
parent 520bc3982b
commit d5e8e35249
11 changed files with 179 additions and 126 deletions

View File

@ -299,6 +299,7 @@ class SymbolWrapper;
class Undetectable;
class UniqueName;
class WasmExceptionObject;
class WasmExceptionTag;
class WasmExportedFunctionData;
class WasmGlobalObject;
class WasmMemoryObject;

View File

@ -352,6 +352,7 @@ Type::bitset BitsetType::Lub(const MapRefLike& map) {
case TUPLE2_TYPE:
case TUPLE3_TYPE:
case WASM_DEBUG_INFO_TYPE:
case WASM_EXCEPTION_TAG_TYPE:
case WASM_EXPORTED_FUNCTION_DATA_TYPE:
case LOAD_HANDLER_TYPE:
case STORE_HANDLER_TYPE:

View File

@ -1799,6 +1799,11 @@ void WasmDebugInfo::WasmDebugInfoVerify(Isolate* isolate) {
VerifyObjectField(isolate, kCWasmEntryMapOffset);
}
void WasmExceptionTag::WasmExceptionTagVerify(Isolate* isolate) {
CHECK(IsWasmExceptionTag());
VerifySmiField(kIndexOffset);
}
void WasmInstanceObject::WasmInstanceObjectVerify(Isolate* isolate) {
JSObjectVerify(isolate);
CHECK(IsWasmInstanceObject());

View File

@ -115,6 +115,7 @@ namespace internal {
V(TUPLE3_TYPE) \
V(ARRAY_BOILERPLATE_DESCRIPTION_TYPE) \
V(WASM_DEBUG_INFO_TYPE) \
V(WASM_EXCEPTION_TAG_TYPE) \
V(WASM_EXPORTED_FUNCTION_DATA_TYPE) \
\
V(CALLABLE_TASK_TYPE) \
@ -340,6 +341,7 @@ namespace internal {
V(_, ARRAY_BOILERPLATE_DESCRIPTION_TYPE, ArrayBoilerplateDescription, \
array_boilerplate_description) \
V(_, WASM_DEBUG_INFO_TYPE, WasmDebugInfo, wasm_debug_info) \
V(_, WASM_EXCEPTION_TAG_TYPE, WasmExceptionTag, wasm_exception_tag) \
V(_, WASM_EXPORTED_FUNCTION_DATA_TYPE, WasmExportedFunctionData, \
wasm_exported_function_data) \
V(_, CALLABLE_TASK_TYPE, CallableTask, callable_task) \

View File

@ -1832,6 +1832,12 @@ void WasmDebugInfo::WasmDebugInfoPrint(std::ostream& os) { // NOLINT
os << "\n";
}
void WasmExceptionTag::WasmExceptionTagPrint(std::ostream& os) { // NOLINT
HeapObject::PrintHeader(os, "WasmExceptionTag");
os << "\n - index: " << index();
os << "\n";
}
void WasmInstanceObject::WasmInstanceObjectPrint(std::ostream& os) { // NOLINT
HeapObject::PrintHeader(os, "WasmInstanceObject");
os << "\n - module_object: " << Brief(module_object());

View File

@ -188,6 +188,7 @@ enum InstanceType : uint16_t {
TUPLE3_TYPE,
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
WASM_DEBUG_INFO_TYPE,
WASM_EXCEPTION_TAG_TYPE,
WASM_EXPORTED_FUNCTION_DATA_TYPE,
CALLABLE_TASK_TYPE, // FIRST_MICROTASK_TYPE

View File

@ -2247,11 +2247,8 @@ void InstanceBuilder::InitializeExceptions(
Handle<FixedArray> exceptions_table(instance->exceptions_table(), isolate_);
for (int index = 0; index < exceptions_table->length(); ++index) {
if (!exceptions_table->get(index)->IsUndefined(isolate_)) continue;
// TODO(mstarzinger): Tags provide an object identity for each exception,
// using {JSObject} here is gigantic hack and we should use a dedicated
// object with a much lighter footprint for this purpose here.
Handle<HeapObject> exception_tag =
isolate_->factory()->NewJSObjectWithNullProto();
Handle<WasmExceptionTag> exception_tag =
WasmExceptionTag::New(isolate_, index);
exceptions_table->set(index, *exception_tag);
}
}

View File

@ -23,6 +23,7 @@ namespace internal {
CAST_ACCESSOR(WasmDebugInfo)
CAST_ACCESSOR(WasmExceptionObject)
CAST_ACCESSOR(WasmExceptionTag)
CAST_ACCESSOR(WasmExportedFunctionData)
CAST_ACCESSOR(WasmGlobalObject)
CAST_ACCESSOR(WasmInstanceObject)
@ -248,6 +249,9 @@ uint32_t WasmTableObject::current_length() { return functions()->length(); }
bool WasmMemoryObject::has_maximum_pages() { return maximum_pages() >= 0; }
// WasmExceptionTag
SMI_ACCESSORS(WasmExceptionTag, index, kIndexOffset)
// AsmWasmData
ACCESSORS(AsmWasmData, managed_native_module, Managed<wasm::NativeModule>,
kManagedNativeModuleOffset)

View File

@ -1436,6 +1436,13 @@ wasm::FunctionSig* WasmExportedFunction::sig() {
return instance()->module()->functions[function_index()].sig;
}
Handle<WasmExceptionTag> WasmExceptionTag::New(Isolate* isolate, int index) {
Handle<WasmExceptionTag> result = Handle<WasmExceptionTag>::cast(
isolate->factory()->NewStruct(WASM_EXCEPTION_TAG_TYPE, TENURED));
result->set_index(index);
return result;
}
Handle<AsmWasmData> AsmWasmData::New(
Isolate* isolate, std::shared_ptr<wasm::NativeModule> native_module,
Handle<FixedArray> export_wrappers, Handle<ByteArray> asm_js_offset_table,

View File

@ -648,6 +648,33 @@ class WasmDebugInfo : public Struct, public NeverReadOnlySpaceObject {
wasm::FunctionSig*);
};
// Tags provide an object identity for each exception defined in a wasm module
// header. They are referenced by the following fields:
// - {WasmExceptionObject::exception_tag} : The tag of the exception object.
// - {WasmInstanceObject::exceptions_table}: List of tags used by an instance.
class WasmExceptionTag : public Struct {
public:
static Handle<WasmExceptionTag> New(Isolate* isolate, int index);
// Note that this index is only useful for debugging purposes and it is not
// unique across modules. The GC however does not allow objects without at
// least one field, hence this also serves as a padding field for now.
DECL_INT_ACCESSORS(index);
DECL_CAST(WasmExceptionTag)
DECL_PRINTER(WasmExceptionTag)
DECL_VERIFIER(WasmExceptionTag)
// Layout description.
#define WASM_EXCEPTION_TAG_FIELDS(V) \
V(kIndexOffset, kPointerSize) \
/* Total size. */ \
V(kSize, 0)
DEFINE_FIELD_OFFSET_CONSTANTS(Struct::kHeaderSize, WASM_EXCEPTION_TAG_FIELDS)
#undef WASM_EXCEPTION_TAG_FIELDS
};
class AsmWasmData : public Struct {
public:
static Handle<AsmWasmData> New(

View File

@ -78,59 +78,60 @@ INSTANCE_TYPES = {
174: "TUPLE3_TYPE",
175: "ARRAY_BOILERPLATE_DESCRIPTION_TYPE",
176: "WASM_DEBUG_INFO_TYPE",
177: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
178: "CALLABLE_TASK_TYPE",
179: "CALLBACK_TASK_TYPE",
180: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE",
181: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE",
182: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE",
183: "WEAK_FACTORY_CLEANUP_JOB_TASK_TYPE",
184: "ALLOCATION_SITE_TYPE",
185: "EMBEDDER_DATA_ARRAY_TYPE",
186: "FIXED_ARRAY_TYPE",
187: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
188: "HASH_TABLE_TYPE",
189: "ORDERED_HASH_MAP_TYPE",
190: "ORDERED_HASH_SET_TYPE",
191: "ORDERED_NAME_DICTIONARY_TYPE",
192: "NAME_DICTIONARY_TYPE",
193: "GLOBAL_DICTIONARY_TYPE",
194: "NUMBER_DICTIONARY_TYPE",
195: "SIMPLE_NUMBER_DICTIONARY_TYPE",
196: "STRING_TABLE_TYPE",
197: "EPHEMERON_HASH_TABLE_TYPE",
198: "SCOPE_INFO_TYPE",
199: "SCRIPT_CONTEXT_TABLE_TYPE",
200: "AWAIT_CONTEXT_TYPE",
201: "BLOCK_CONTEXT_TYPE",
202: "CATCH_CONTEXT_TYPE",
203: "DEBUG_EVALUATE_CONTEXT_TYPE",
204: "EVAL_CONTEXT_TYPE",
205: "FUNCTION_CONTEXT_TYPE",
206: "MODULE_CONTEXT_TYPE",
207: "NATIVE_CONTEXT_TYPE",
208: "SCRIPT_CONTEXT_TYPE",
209: "WITH_CONTEXT_TYPE",
210: "WEAK_FIXED_ARRAY_TYPE",
211: "TRANSITION_ARRAY_TYPE",
212: "CALL_HANDLER_INFO_TYPE",
213: "CELL_TYPE",
214: "CODE_DATA_CONTAINER_TYPE",
215: "DESCRIPTOR_ARRAY_TYPE",
216: "FEEDBACK_CELL_TYPE",
217: "FEEDBACK_VECTOR_TYPE",
218: "LOAD_HANDLER_TYPE",
219: "PRE_PARSED_SCOPE_DATA_TYPE",
220: "PROPERTY_ARRAY_TYPE",
221: "PROPERTY_CELL_TYPE",
222: "SHARED_FUNCTION_INFO_TYPE",
223: "SMALL_ORDERED_HASH_MAP_TYPE",
224: "SMALL_ORDERED_HASH_SET_TYPE",
225: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
226: "STORE_HANDLER_TYPE",
227: "UNCOMPILED_DATA_WITHOUT_PRE_PARSED_SCOPE_TYPE",
228: "UNCOMPILED_DATA_WITH_PRE_PARSED_SCOPE_TYPE",
229: "WEAK_ARRAY_LIST_TYPE",
177: "WASM_EXCEPTION_TAG_TYPE",
178: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
179: "CALLABLE_TASK_TYPE",
180: "CALLBACK_TASK_TYPE",
181: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE",
182: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE",
183: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE",
184: "WEAK_FACTORY_CLEANUP_JOB_TASK_TYPE",
185: "ALLOCATION_SITE_TYPE",
186: "EMBEDDER_DATA_ARRAY_TYPE",
187: "FIXED_ARRAY_TYPE",
188: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
189: "HASH_TABLE_TYPE",
190: "ORDERED_HASH_MAP_TYPE",
191: "ORDERED_HASH_SET_TYPE",
192: "ORDERED_NAME_DICTIONARY_TYPE",
193: "NAME_DICTIONARY_TYPE",
194: "GLOBAL_DICTIONARY_TYPE",
195: "NUMBER_DICTIONARY_TYPE",
196: "SIMPLE_NUMBER_DICTIONARY_TYPE",
197: "STRING_TABLE_TYPE",
198: "EPHEMERON_HASH_TABLE_TYPE",
199: "SCOPE_INFO_TYPE",
200: "SCRIPT_CONTEXT_TABLE_TYPE",
201: "AWAIT_CONTEXT_TYPE",
202: "BLOCK_CONTEXT_TYPE",
203: "CATCH_CONTEXT_TYPE",
204: "DEBUG_EVALUATE_CONTEXT_TYPE",
205: "EVAL_CONTEXT_TYPE",
206: "FUNCTION_CONTEXT_TYPE",
207: "MODULE_CONTEXT_TYPE",
208: "NATIVE_CONTEXT_TYPE",
209: "SCRIPT_CONTEXT_TYPE",
210: "WITH_CONTEXT_TYPE",
211: "WEAK_FIXED_ARRAY_TYPE",
212: "TRANSITION_ARRAY_TYPE",
213: "CALL_HANDLER_INFO_TYPE",
214: "CELL_TYPE",
215: "CODE_DATA_CONTAINER_TYPE",
216: "DESCRIPTOR_ARRAY_TYPE",
217: "FEEDBACK_CELL_TYPE",
218: "FEEDBACK_VECTOR_TYPE",
219: "LOAD_HANDLER_TYPE",
220: "PRE_PARSED_SCOPE_DATA_TYPE",
221: "PROPERTY_ARRAY_TYPE",
222: "PROPERTY_CELL_TYPE",
223: "SHARED_FUNCTION_INFO_TYPE",
224: "SMALL_ORDERED_HASH_MAP_TYPE",
225: "SMALL_ORDERED_HASH_SET_TYPE",
226: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
227: "STORE_HANDLER_TYPE",
228: "UNCOMPILED_DATA_WITHOUT_PRE_PARSED_SCOPE_TYPE",
229: "UNCOMPILED_DATA_WITH_PRE_PARSED_SCOPE_TYPE",
230: "WEAK_ARRAY_LIST_TYPE",
1024: "JS_PROXY_TYPE",
1025: "JS_GLOBAL_OBJECT_TYPE",
1026: "JS_GLOBAL_PROXY_TYPE",
@ -195,8 +196,8 @@ KNOWN_MAPS = {
("RO_SPACE", 0x00139): (138, "FreeSpaceMap"),
("RO_SPACE", 0x00189): (132, "MetaMap"),
("RO_SPACE", 0x00209): (131, "NullMap"),
("RO_SPACE", 0x00271): (215, "DescriptorArrayMap"),
("RO_SPACE", 0x002d1): (210, "WeakFixedArrayMap"),
("RO_SPACE", 0x00271): (216, "DescriptorArrayMap"),
("RO_SPACE", 0x002d1): (211, "WeakFixedArrayMap"),
("RO_SPACE", 0x00321): (152, "OnePointerFillerMap"),
("RO_SPACE", 0x00371): (152, "TwoPointerFillerMap"),
("RO_SPACE", 0x003f1): (131, "UninitializedMap"),
@ -206,70 +207,70 @@ KNOWN_MAPS = {
("RO_SPACE", 0x005e1): (131, "TheHoleMap"),
("RO_SPACE", 0x00689): (131, "BooleanMap"),
("RO_SPACE", 0x00761): (136, "ByteArrayMap"),
("RO_SPACE", 0x007b1): (186, "FixedArrayMap"),
("RO_SPACE", 0x00801): (186, "FixedCOWArrayMap"),
("RO_SPACE", 0x00851): (188, "HashTableMap"),
("RO_SPACE", 0x007b1): (187, "FixedArrayMap"),
("RO_SPACE", 0x00801): (187, "FixedCOWArrayMap"),
("RO_SPACE", 0x00851): (189, "HashTableMap"),
("RO_SPACE", 0x008a1): (128, "SymbolMap"),
("RO_SPACE", 0x008f1): (72, "OneByteStringMap"),
("RO_SPACE", 0x00941): (198, "ScopeInfoMap"),
("RO_SPACE", 0x00991): (222, "SharedFunctionInfoMap"),
("RO_SPACE", 0x00941): (199, "ScopeInfoMap"),
("RO_SPACE", 0x00991): (223, "SharedFunctionInfoMap"),
("RO_SPACE", 0x009e1): (133, "CodeMap"),
("RO_SPACE", 0x00a31): (205, "FunctionContextMap"),
("RO_SPACE", 0x00a81): (213, "CellMap"),
("RO_SPACE", 0x00ad1): (221, "GlobalPropertyCellMap"),
("RO_SPACE", 0x00a31): (206, "FunctionContextMap"),
("RO_SPACE", 0x00a81): (214, "CellMap"),
("RO_SPACE", 0x00ad1): (222, "GlobalPropertyCellMap"),
("RO_SPACE", 0x00b21): (135, "ForeignMap"),
("RO_SPACE", 0x00b71): (211, "TransitionArrayMap"),
("RO_SPACE", 0x00bc1): (217, "FeedbackVectorMap"),
("RO_SPACE", 0x00b71): (212, "TransitionArrayMap"),
("RO_SPACE", 0x00bc1): (218, "FeedbackVectorMap"),
("RO_SPACE", 0x00c61): (131, "ArgumentsMarkerMap"),
("RO_SPACE", 0x00d01): (131, "ExceptionMap"),
("RO_SPACE", 0x00da1): (131, "TerminationExceptionMap"),
("RO_SPACE", 0x00e49): (131, "OptimizedOutMap"),
("RO_SPACE", 0x00ee9): (131, "StaleRegisterMap"),
("RO_SPACE", 0x00f59): (207, "NativeContextMap"),
("RO_SPACE", 0x00fa9): (206, "ModuleContextMap"),
("RO_SPACE", 0x00ff9): (204, "EvalContextMap"),
("RO_SPACE", 0x01049): (208, "ScriptContextMap"),
("RO_SPACE", 0x01099): (200, "AwaitContextMap"),
("RO_SPACE", 0x010e9): (201, "BlockContextMap"),
("RO_SPACE", 0x01139): (202, "CatchContextMap"),
("RO_SPACE", 0x01189): (209, "WithContextMap"),
("RO_SPACE", 0x011d9): (203, "DebugEvaluateContextMap"),
("RO_SPACE", 0x01229): (199, "ScriptContextTableMap"),
("RO_SPACE", 0x00f59): (208, "NativeContextMap"),
("RO_SPACE", 0x00fa9): (207, "ModuleContextMap"),
("RO_SPACE", 0x00ff9): (205, "EvalContextMap"),
("RO_SPACE", 0x01049): (209, "ScriptContextMap"),
("RO_SPACE", 0x01099): (201, "AwaitContextMap"),
("RO_SPACE", 0x010e9): (202, "BlockContextMap"),
("RO_SPACE", 0x01139): (203, "CatchContextMap"),
("RO_SPACE", 0x01189): (210, "WithContextMap"),
("RO_SPACE", 0x011d9): (204, "DebugEvaluateContextMap"),
("RO_SPACE", 0x01229): (200, "ScriptContextTableMap"),
("RO_SPACE", 0x01279): (151, "FeedbackMetadataArrayMap"),
("RO_SPACE", 0x012c9): (186, "ArrayListMap"),
("RO_SPACE", 0x012c9): (187, "ArrayListMap"),
("RO_SPACE", 0x01319): (130, "BigIntMap"),
("RO_SPACE", 0x01369): (187, "ObjectBoilerplateDescriptionMap"),
("RO_SPACE", 0x01369): (188, "ObjectBoilerplateDescriptionMap"),
("RO_SPACE", 0x013b9): (137, "BytecodeArrayMap"),
("RO_SPACE", 0x01409): (214, "CodeDataContainerMap"),
("RO_SPACE", 0x01409): (215, "CodeDataContainerMap"),
("RO_SPACE", 0x01459): (150, "FixedDoubleArrayMap"),
("RO_SPACE", 0x014a9): (193, "GlobalDictionaryMap"),
("RO_SPACE", 0x014f9): (216, "ManyClosuresCellMap"),
("RO_SPACE", 0x01549): (186, "ModuleInfoMap"),
("RO_SPACE", 0x014a9): (194, "GlobalDictionaryMap"),
("RO_SPACE", 0x014f9): (217, "ManyClosuresCellMap"),
("RO_SPACE", 0x01549): (187, "ModuleInfoMap"),
("RO_SPACE", 0x01599): (134, "MutableHeapNumberMap"),
("RO_SPACE", 0x015e9): (192, "NameDictionaryMap"),
("RO_SPACE", 0x01639): (216, "NoClosuresCellMap"),
("RO_SPACE", 0x01689): (216, "NoFeedbackCellMap"),
("RO_SPACE", 0x016d9): (194, "NumberDictionaryMap"),
("RO_SPACE", 0x01729): (216, "OneClosureCellMap"),
("RO_SPACE", 0x01779): (189, "OrderedHashMapMap"),
("RO_SPACE", 0x017c9): (190, "OrderedHashSetMap"),
("RO_SPACE", 0x01819): (191, "OrderedNameDictionaryMap"),
("RO_SPACE", 0x01869): (219, "PreParsedScopeDataMap"),
("RO_SPACE", 0x018b9): (220, "PropertyArrayMap"),
("RO_SPACE", 0x01909): (212, "SideEffectCallHandlerInfoMap"),
("RO_SPACE", 0x01959): (212, "SideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x019a9): (212, "NextCallSideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x019f9): (195, "SimpleNumberDictionaryMap"),
("RO_SPACE", 0x01a49): (186, "SloppyArgumentsElementsMap"),
("RO_SPACE", 0x01a99): (223, "SmallOrderedHashMapMap"),
("RO_SPACE", 0x01ae9): (224, "SmallOrderedHashSetMap"),
("RO_SPACE", 0x01b39): (225, "SmallOrderedNameDictionaryMap"),
("RO_SPACE", 0x01b89): (196, "StringTableMap"),
("RO_SPACE", 0x01bd9): (227, "UncompiledDataWithoutPreParsedScopeMap"),
("RO_SPACE", 0x01c29): (228, "UncompiledDataWithPreParsedScopeMap"),
("RO_SPACE", 0x01c79): (229, "WeakArrayListMap"),
("RO_SPACE", 0x01cc9): (197, "EphemeronHashTableMap"),
("RO_SPACE", 0x01d19): (185, "EmbedderDataArrayMap"),
("RO_SPACE", 0x015e9): (193, "NameDictionaryMap"),
("RO_SPACE", 0x01639): (217, "NoClosuresCellMap"),
("RO_SPACE", 0x01689): (217, "NoFeedbackCellMap"),
("RO_SPACE", 0x016d9): (195, "NumberDictionaryMap"),
("RO_SPACE", 0x01729): (217, "OneClosureCellMap"),
("RO_SPACE", 0x01779): (190, "OrderedHashMapMap"),
("RO_SPACE", 0x017c9): (191, "OrderedHashSetMap"),
("RO_SPACE", 0x01819): (192, "OrderedNameDictionaryMap"),
("RO_SPACE", 0x01869): (220, "PreParsedScopeDataMap"),
("RO_SPACE", 0x018b9): (221, "PropertyArrayMap"),
("RO_SPACE", 0x01909): (213, "SideEffectCallHandlerInfoMap"),
("RO_SPACE", 0x01959): (213, "SideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x019a9): (213, "NextCallSideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x019f9): (196, "SimpleNumberDictionaryMap"),
("RO_SPACE", 0x01a49): (187, "SloppyArgumentsElementsMap"),
("RO_SPACE", 0x01a99): (224, "SmallOrderedHashMapMap"),
("RO_SPACE", 0x01ae9): (225, "SmallOrderedHashSetMap"),
("RO_SPACE", 0x01b39): (226, "SmallOrderedNameDictionaryMap"),
("RO_SPACE", 0x01b89): (197, "StringTableMap"),
("RO_SPACE", 0x01bd9): (228, "UncompiledDataWithoutPreParsedScopeMap"),
("RO_SPACE", 0x01c29): (229, "UncompiledDataWithPreParsedScopeMap"),
("RO_SPACE", 0x01c79): (230, "WeakArrayListMap"),
("RO_SPACE", 0x01cc9): (198, "EphemeronHashTableMap"),
("RO_SPACE", 0x01d19): (186, "EmbedderDataArrayMap"),
("RO_SPACE", 0x01d69): (106, "NativeSourceStringMap"),
("RO_SPACE", 0x01db9): (64, "StringMap"),
("RO_SPACE", 0x01e09): (73, "ConsOneByteStringMap"),
@ -327,22 +328,23 @@ KNOWN_MAPS = {
("RO_SPACE", 0x05671): (172, "StackFrameInfoMap"),
("RO_SPACE", 0x056c1): (174, "Tuple3Map"),
("RO_SPACE", 0x05711): (176, "WasmDebugInfoMap"),
("RO_SPACE", 0x05761): (177, "WasmExportedFunctionDataMap"),
("RO_SPACE", 0x057b1): (178, "CallableTaskMap"),
("RO_SPACE", 0x05801): (179, "CallbackTaskMap"),
("RO_SPACE", 0x05851): (180, "PromiseFulfillReactionJobTaskMap"),
("RO_SPACE", 0x058a1): (181, "PromiseRejectReactionJobTaskMap"),
("RO_SPACE", 0x058f1): (182, "PromiseResolveThenableJobTaskMap"),
("RO_SPACE", 0x05941): (183, "WeakFactoryCleanupJobTaskMap"),
("RO_SPACE", 0x05991): (184, "AllocationSiteWithWeakNextMap"),
("RO_SPACE", 0x059e1): (184, "AllocationSiteWithoutWeakNextMap"),
("RO_SPACE", 0x05a31): (218, "LoadHandler1Map"),
("RO_SPACE", 0x05a81): (218, "LoadHandler2Map"),
("RO_SPACE", 0x05ad1): (218, "LoadHandler3Map"),
("RO_SPACE", 0x05b21): (226, "StoreHandler0Map"),
("RO_SPACE", 0x05b71): (226, "StoreHandler1Map"),
("RO_SPACE", 0x05bc1): (226, "StoreHandler2Map"),
("RO_SPACE", 0x05c11): (226, "StoreHandler3Map"),
("RO_SPACE", 0x05761): (177, "WasmExceptionTagMap"),
("RO_SPACE", 0x057b1): (178, "WasmExportedFunctionDataMap"),
("RO_SPACE", 0x05801): (179, "CallableTaskMap"),
("RO_SPACE", 0x05851): (180, "CallbackTaskMap"),
("RO_SPACE", 0x058a1): (181, "PromiseFulfillReactionJobTaskMap"),
("RO_SPACE", 0x058f1): (182, "PromiseRejectReactionJobTaskMap"),
("RO_SPACE", 0x05941): (183, "PromiseResolveThenableJobTaskMap"),
("RO_SPACE", 0x05991): (184, "WeakFactoryCleanupJobTaskMap"),
("RO_SPACE", 0x059e1): (185, "AllocationSiteWithWeakNextMap"),
("RO_SPACE", 0x05a31): (185, "AllocationSiteWithoutWeakNextMap"),
("RO_SPACE", 0x05a81): (219, "LoadHandler1Map"),
("RO_SPACE", 0x05ad1): (219, "LoadHandler2Map"),
("RO_SPACE", 0x05b21): (219, "LoadHandler3Map"),
("RO_SPACE", 0x05b71): (227, "StoreHandler0Map"),
("RO_SPACE", 0x05bc1): (227, "StoreHandler1Map"),
("RO_SPACE", 0x05c11): (227, "StoreHandler2Map"),
("RO_SPACE", 0x05c61): (227, "StoreHandler3Map"),
("MAP_SPACE", 0x00139): (1057, "ExternalMap"),
("MAP_SPACE", 0x00189): (1073, "JSMessageObjectMap"),
}