[cleanup] Make PropertyDescriptorObject inherit from Struct

There is no particular reason that PropertyDescriptorObject should be a
subclass of FixedArray. By using a separate struct type, we get better
generated accessor functions, automatic verification, and runtime type
info, plus we save four bytes per instance.

Change-Id: If076782832aa9398806794e4ee6d019aea2f92b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1999463
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#65756}
This commit is contained in:
Seth Brenith 2020-01-13 15:53:24 -08:00 committed by Commit Bot
parent 00cd6e0d0e
commit 1077308c39
19 changed files with 207 additions and 183 deletions

View File

@ -1085,6 +1085,7 @@ torque_files = [
"src/objects/promise.tq",
"src/objects/property-array.tq",
"src/objects/property-cell.tq",
"src/objects/property-descriptor-object.tq",
"src/objects/prototype-info.tq",
"src/objects/regexp-match-info.tq",
"src/objects/scope-info.tq",

View File

@ -34,7 +34,7 @@ class ObjectBuiltinsAssembler : public CodeStubAssembler {
Handle<Name> name, TNode<Object> value,
Label* bailout);
TNode<JSObject> FromPropertyDescriptor(TNode<Context> context,
TNode<FixedArray> desc);
TNode<PropertyDescriptorObject> desc);
TNode<JSObject> FromPropertyDetails(TNode<Context> context,
TNode<Object> raw_value,
TNode<Word32T> details,
@ -1369,10 +1369,10 @@ TF_BUILTIN(ObjectGetOwnPropertyDescriptor, ObjectBuiltinsAssembler) {
GotoIf(IsUndefined(desc), &return_undefined);
TNode<FixedArray> desc_array = CAST(desc);
TNode<PropertyDescriptorObject> desc_object = CAST(desc);
// 4. Return FromPropertyDescriptor(desc).
TNode<JSObject> js_desc = FromPropertyDescriptor(context, desc_array);
TNode<JSObject> js_desc = FromPropertyDescriptor(context, desc_object);
args.PopAndReturn(js_desc);
}
BIND(&return_undefined);
@ -1392,7 +1392,7 @@ void ObjectBuiltinsAssembler::AddToDictionaryIf(
}
TNode<JSObject> ObjectBuiltinsAssembler::FromPropertyDescriptor(
TNode<Context> context, TNode<FixedArray> desc) {
TNode<Context> context, TNode<PropertyDescriptorObject> desc) {
TVARIABLE(JSObject, js_descriptor);
TNode<Int32T> flags = LoadAndUntagToWord32ObjectField(

View File

@ -274,6 +274,7 @@ Type::bitset BitsetType::Lub(const MapRefLike& map) {
case ACCESSOR_PAIR_TYPE:
case EMBEDDER_DATA_ARRAY_TYPE:
case FIXED_ARRAY_TYPE:
case PROPERTY_DESCRIPTOR_OBJECT_TYPE:
case HASH_TABLE_TYPE:
case ORDERED_HASH_MAP_TYPE:
case ORDERED_HASH_SET_TYPE:

View File

@ -62,6 +62,7 @@
#include "src/objects/module-inl.h"
#include "src/objects/oddball-inl.h"
#include "src/objects/promise-inl.h"
#include "src/objects/property-descriptor-object-inl.h"
#include "src/objects/stack-frame-info-inl.h"
#include "src/objects/struct-inl.h"
#include "src/objects/template-objects-inl.h"

View File

@ -58,6 +58,7 @@
#include "src/objects/module-inl.h"
#include "src/objects/oddball-inl.h"
#include "src/objects/promise-inl.h"
#include "src/objects/property-descriptor-object-inl.h"
#include "src/objects/stack-frame-info-inl.h"
#include "src/objects/struct-inl.h"
#include "src/objects/template-objects-inl.h"

View File

@ -51,6 +51,7 @@
#include "src/objects/microtask-inl.h"
#include "src/objects/module-inl.h"
#include "src/objects/promise-inl.h"
#include "src/objects/property-descriptor-object-inl.h"
#include "src/objects/scope-info.h"
#include "src/objects/stack-frame-info-inl.h"
#include "src/objects/struct-inl.h"
@ -706,6 +707,17 @@ Handle<AccessorPair> Factory::NewAccessorPair() {
return accessors;
}
Handle<PropertyDescriptorObject> Factory::NewPropertyDescriptorObject() {
Handle<PropertyDescriptorObject> object =
Handle<PropertyDescriptorObject>::cast(
NewStruct(PROPERTY_DESCRIPTOR_OBJECT_TYPE, AllocationType::kYoung));
object->set_flags(Smi::zero());
object->set_value(*the_hole_value(), SKIP_WRITE_BARRIER);
object->set_get(*the_hole_value(), SKIP_WRITE_BARRIER);
object->set_set(*the_hole_value(), SKIP_WRITE_BARRIER);
return object;
}
// Internalized strings are created in the old generation (data space).
Handle<String> Factory::InternalizeUtf8String(
const Vector<const char>& string) {

View File

@ -225,6 +225,9 @@ class V8_EXPORT_PRIVATE Factory {
// Create a pre-tenured empty AccessorPair.
Handle<AccessorPair> NewAccessorPair();
// Create a new PropertyDescriptorObject struct.
Handle<PropertyDescriptorObject> NewPropertyDescriptorObject();
// Finds the internalized copy for string in the string table.
// If not found, a new string is added to the table and returned.
Handle<String> InternalizeUtf8String(const Vector<const char>& str);

View File

@ -34,6 +34,7 @@
#include "src/objects/oddball-inl.h"
#include "src/objects/ordered-hash-table.h"
#include "src/objects/promise.h"
#include "src/objects/property-descriptor-object.h"
#include "src/objects/script.h"
#include "src/objects/shared-function-info.h"
#include "src/objects/smi.h"

View File

@ -210,13 +210,12 @@ V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
InstanceType instance_type);
// List of object types that have a single unique instance type.
#define INSTANCE_TYPE_CHECKERS_SINGLE(V) \
TORQUE_INSTANCE_CHECKERS_SINGLE_FULLY_DEFINED(V) \
TORQUE_INSTANCE_CHECKERS_SINGLE_ONLY_DECLARED(V) \
V(BigInt, BIGINT_TYPE) \
V(CoverageInfo, FIXED_ARRAY_TYPE) \
V(FixedArrayExact, FIXED_ARRAY_TYPE) \
V(PropertyDescriptorObject, FIXED_ARRAY_TYPE)
#define INSTANCE_TYPE_CHECKERS_SINGLE(V) \
TORQUE_INSTANCE_CHECKERS_SINGLE_FULLY_DEFINED(V) \
TORQUE_INSTANCE_CHECKERS_SINGLE_ONLY_DECLARED(V) \
V(BigInt, BIGINT_TYPE) \
V(CoverageInfo, FIXED_ARRAY_TYPE) \
V(FixedArrayExact, FIXED_ARRAY_TYPE)
#define INSTANCE_TYPE_CHECKERS_RANGE(V) \
TORQUE_INSTANCE_CHECKERS_RANGE_FULLY_DEFINED(V) \

View File

@ -190,7 +190,6 @@ class ZoneForwardList;
V(PromiseReactionJobTask) \
V(PropertyArray) \
V(PropertyCell) \
V(PropertyDescriptorObject) \
V(RegExpMatchInfo) \
V(ScopeInfo) \
V(ScriptContextTable) \

View File

@ -138,6 +138,8 @@ namespace internal {
V(_, INTERPRETER_DATA_TYPE, InterpreterData, interpreter_data) \
V(_, PROMISE_CAPABILITY_TYPE, PromiseCapability, promise_capability) \
V(_, PROMISE_REACTION_TYPE, PromiseReaction, promise_reaction) \
V(_, PROPERTY_DESCRIPTOR_OBJECT_TYPE, PropertyDescriptorObject, \
property_descriptor_object) \
V(_, PROTOTYPE_INFO_TYPE, PrototypeInfo, prototype_info) \
V(_, SCRIPT_TYPE, Script, script) \
V(_, SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE, SourceTextModuleInfoEntry, \

View File

@ -98,6 +98,7 @@
#include "src/objects/microtask-inl.h"
#include "src/objects/module-inl.h"
#include "src/objects/promise-inl.h"
#include "src/objects/property-descriptor-object-inl.h"
#include "src/objects/property-descriptor.h"
#include "src/objects/prototype.h"
#include "src/objects/slots-atomic-inl.h"

View File

@ -167,6 +167,7 @@
// - StackFrameInfo
// - StackTraceFrame
// - CodeCache
// - PropertyDescriptorObject
// - PrototypeInfo
// - Microtask
// - CallbackTask

View File

@ -14,8 +14,7 @@
namespace v8 {
namespace internal {
OBJECT_CONSTRUCTORS_IMPL(PropertyDescriptorObject, FixedArray)
CAST_ACCESSOR(PropertyDescriptorObject)
TQ_OBJECT_CONSTRUCTORS_IMPL(PropertyDescriptorObject)
}
} // namespace v8

View File

@ -6,8 +6,7 @@
#define V8_OBJECTS_PROPERTY_DESCRIPTOR_OBJECT_H_
#include "src/base/bit-field.h"
#include "src/objects/fixed-array.h"
#include "src/objects/objects.h"
#include "src/objects/struct.h"
// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"
@ -15,7 +14,9 @@
namespace v8 {
namespace internal {
class PropertyDescriptorObject : public FixedArray {
class PropertyDescriptorObject
: public TorqueGeneratedPropertyDescriptorObject<PropertyDescriptorObject,
Struct> {
public:
#define FLAGS_BIT_FIELDS(V, _) \
V(IsEnumerableBit, bool, 1, _) \
@ -31,10 +32,6 @@ class PropertyDescriptorObject : public FixedArray {
DEFINE_BIT_FIELDS(FLAGS_BIT_FIELDS)
#undef FLAGS_BIT_FIELDS
enum { kFlagsIndex, kValueIndex, kGetIndex, kSetIndex, kLength };
DECL_CAST(PropertyDescriptorObject)
static const int kRegularAccessorPropertyBits =
HasEnumerableBit::kMask | HasConfigurableBit::kMask | HasGetBit::kMask |
HasSetBit::kMask;
@ -48,16 +45,7 @@ class PropertyDescriptorObject : public FixedArray {
HasWritableBit::kMask | HasValueBit::kMask |
HasGetBit::kMask | HasSetBit::kMask;
static const int kValueOffset =
FixedArray::OffsetOfElementAt(PropertyDescriptorObject::kValueIndex);
static const int kFlagsOffset =
FixedArray::OffsetOfElementAt(PropertyDescriptorObject::kFlagsIndex);
static const int kGetOffset =
FixedArray::OffsetOfElementAt(PropertyDescriptorObject::kGetIndex);
static const int kSetOffset =
FixedArray::OffsetOfElementAt(PropertyDescriptorObject::kSetIndex);
OBJECT_CONSTRUCTORS(PropertyDescriptorObject, FixedArray);
TQ_OBJECT_CONSTRUCTORS(PropertyDescriptorObject)
};
} // namespace internal

View File

@ -0,0 +1,14 @@
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include 'src/objects/property-descriptor-object.h'
@generateCppClass
@generatePrint
extern class PropertyDescriptorObject extends Struct {
flags: Smi;
value: JSAny|TheHole;
get: JSAny|TheHole;
set: JSAny|TheHole;
}

View File

@ -341,8 +341,8 @@ void PropertyDescriptor::CompletePropertyDescriptor(Isolate* isolate,
Handle<PropertyDescriptorObject> PropertyDescriptor::ToPropertyDescriptorObject(
Isolate* isolate) {
Handle<PropertyDescriptorObject> obj = Handle<PropertyDescriptorObject>::cast(
isolate->factory()->NewFixedArray(PropertyDescriptorObject::kLength));
Handle<PropertyDescriptorObject> obj =
isolate->factory()->NewPropertyDescriptorObject();
int flags =
PropertyDescriptorObject::IsEnumerableBit::encode(enumerable_) |
@ -355,14 +355,11 @@ Handle<PropertyDescriptorObject> PropertyDescriptor::ToPropertyDescriptorObject(
PropertyDescriptorObject::HasGetBit::encode(has_get()) |
PropertyDescriptorObject::HasSetBit::encode(has_set());
obj->set(PropertyDescriptorObject::kFlagsIndex, Smi::FromInt(flags));
obj->set_flags(Smi::FromInt(flags));
obj->set(PropertyDescriptorObject::kValueIndex,
has_value() ? *value_ : ReadOnlyRoots(isolate).the_hole_value());
obj->set(PropertyDescriptorObject::kGetIndex,
has_get() ? *get_ : ReadOnlyRoots(isolate).the_hole_value());
obj->set(PropertyDescriptorObject::kSetIndex,
has_set() ? *set_ : ReadOnlyRoots(isolate).the_hole_value());
if (has_value()) obj->set_value(*value_);
if (has_get()) obj->set_get(*get_);
if (has_set()) obj->set_set(*set_);
return obj;
}

View File

@ -3584,6 +3584,8 @@ void ImplementationVisitor::GenerateClassDefinitions(
implementation << "#include \"src/objects/microtask-inl.h\"\n";
implementation << "#include \"src/objects/module-inl.h\"\n";
implementation << "#include \"src/objects/promise-inl.h\"\n";
implementation
<< "#include \"src/objects/property-descriptor-object-inl.h\"\n";
implementation << "#include \"src/objects/stack-frame-info-inl.h\"\n";
implementation << "#include \"src/objects/struct-inl.h\"\n";
implementation << "#include \"src/objects/template-objects-inl.h\"\n\n";

View File

@ -64,78 +64,79 @@ INSTANCE_TYPES = {
100: "INTERPRETER_DATA_TYPE",
101: "PROMISE_CAPABILITY_TYPE",
102: "PROMISE_REACTION_TYPE",
103: "PROTOTYPE_INFO_TYPE",
104: "SCRIPT_TYPE",
105: "SMI_BOX_TYPE",
106: "SMI_PAIR_TYPE",
107: "SORT_STATE_TYPE",
108: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE",
109: "STACK_FRAME_INFO_TYPE",
110: "STACK_TRACE_FRAME_TYPE",
111: "TEMPLATE_OBJECT_DESCRIPTION_TYPE",
112: "TUPLE2_TYPE",
113: "WASM_CAPI_FUNCTION_DATA_TYPE",
114: "WASM_DEBUG_INFO_TYPE",
115: "WASM_EXCEPTION_TAG_TYPE",
116: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
117: "WASM_INDIRECT_FUNCTION_TABLE_TYPE",
118: "WASM_JS_FUNCTION_DATA_TYPE",
119: "FIXED_ARRAY_TYPE",
120: "HASH_TABLE_TYPE",
121: "EPHEMERON_HASH_TABLE_TYPE",
122: "GLOBAL_DICTIONARY_TYPE",
123: "NAME_DICTIONARY_TYPE",
124: "NUMBER_DICTIONARY_TYPE",
125: "ORDERED_HASH_MAP_TYPE",
126: "ORDERED_HASH_SET_TYPE",
127: "ORDERED_NAME_DICTIONARY_TYPE",
128: "SIMPLE_NUMBER_DICTIONARY_TYPE",
129: "STRING_TABLE_TYPE",
130: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE",
131: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
132: "SCOPE_INFO_TYPE",
133: "SCRIPT_CONTEXT_TABLE_TYPE",
134: "BYTE_ARRAY_TYPE",
135: "BYTECODE_ARRAY_TYPE",
136: "FIXED_DOUBLE_ARRAY_TYPE",
137: "AWAIT_CONTEXT_TYPE",
138: "BLOCK_CONTEXT_TYPE",
139: "CATCH_CONTEXT_TYPE",
140: "DEBUG_EVALUATE_CONTEXT_TYPE",
141: "EVAL_CONTEXT_TYPE",
142: "FUNCTION_CONTEXT_TYPE",
143: "MODULE_CONTEXT_TYPE",
144: "NATIVE_CONTEXT_TYPE",
145: "SCRIPT_CONTEXT_TYPE",
146: "WITH_CONTEXT_TYPE",
147: "SMALL_ORDERED_HASH_MAP_TYPE",
148: "SMALL_ORDERED_HASH_SET_TYPE",
149: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
150: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE",
151: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE",
152: "WEAK_FIXED_ARRAY_TYPE",
153: "TRANSITION_ARRAY_TYPE",
154: "CELL_TYPE",
155: "CODE_TYPE",
156: "CODE_DATA_CONTAINER_TYPE",
157: "DESCRIPTOR_ARRAY_TYPE",
158: "EMBEDDER_DATA_ARRAY_TYPE",
159: "FEEDBACK_METADATA_TYPE",
160: "FEEDBACK_VECTOR_TYPE",
161: "FILLER_TYPE",
162: "FREE_SPACE_TYPE",
163: "MAP_TYPE",
164: "PREPARSE_DATA_TYPE",
165: "PROPERTY_ARRAY_TYPE",
166: "PROPERTY_CELL_TYPE",
167: "SHARED_FUNCTION_INFO_TYPE",
168: "WEAK_ARRAY_LIST_TYPE",
169: "WEAK_CELL_TYPE",
170: "JS_PROXY_TYPE",
103: "PROPERTY_DESCRIPTOR_OBJECT_TYPE",
104: "PROTOTYPE_INFO_TYPE",
105: "SCRIPT_TYPE",
106: "SMI_BOX_TYPE",
107: "SMI_PAIR_TYPE",
108: "SORT_STATE_TYPE",
109: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE",
110: "STACK_FRAME_INFO_TYPE",
111: "STACK_TRACE_FRAME_TYPE",
112: "TEMPLATE_OBJECT_DESCRIPTION_TYPE",
113: "TUPLE2_TYPE",
114: "WASM_CAPI_FUNCTION_DATA_TYPE",
115: "WASM_DEBUG_INFO_TYPE",
116: "WASM_EXCEPTION_TAG_TYPE",
117: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
118: "WASM_INDIRECT_FUNCTION_TABLE_TYPE",
119: "WASM_JS_FUNCTION_DATA_TYPE",
120: "FIXED_ARRAY_TYPE",
121: "HASH_TABLE_TYPE",
122: "EPHEMERON_HASH_TABLE_TYPE",
123: "GLOBAL_DICTIONARY_TYPE",
124: "NAME_DICTIONARY_TYPE",
125: "NUMBER_DICTIONARY_TYPE",
126: "ORDERED_HASH_MAP_TYPE",
127: "ORDERED_HASH_SET_TYPE",
128: "ORDERED_NAME_DICTIONARY_TYPE",
129: "SIMPLE_NUMBER_DICTIONARY_TYPE",
130: "STRING_TABLE_TYPE",
131: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE",
132: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
133: "SCOPE_INFO_TYPE",
134: "SCRIPT_CONTEXT_TABLE_TYPE",
135: "BYTE_ARRAY_TYPE",
136: "BYTECODE_ARRAY_TYPE",
137: "FIXED_DOUBLE_ARRAY_TYPE",
138: "AWAIT_CONTEXT_TYPE",
139: "BLOCK_CONTEXT_TYPE",
140: "CATCH_CONTEXT_TYPE",
141: "DEBUG_EVALUATE_CONTEXT_TYPE",
142: "EVAL_CONTEXT_TYPE",
143: "FUNCTION_CONTEXT_TYPE",
144: "MODULE_CONTEXT_TYPE",
145: "NATIVE_CONTEXT_TYPE",
146: "SCRIPT_CONTEXT_TYPE",
147: "WITH_CONTEXT_TYPE",
148: "SMALL_ORDERED_HASH_MAP_TYPE",
149: "SMALL_ORDERED_HASH_SET_TYPE",
150: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
151: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE",
152: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE",
153: "WEAK_FIXED_ARRAY_TYPE",
154: "TRANSITION_ARRAY_TYPE",
155: "CELL_TYPE",
156: "CODE_TYPE",
157: "CODE_DATA_CONTAINER_TYPE",
158: "DESCRIPTOR_ARRAY_TYPE",
159: "EMBEDDER_DATA_ARRAY_TYPE",
160: "FEEDBACK_METADATA_TYPE",
161: "FEEDBACK_VECTOR_TYPE",
162: "FILLER_TYPE",
163: "FREE_SPACE_TYPE",
164: "MAP_TYPE",
165: "PREPARSE_DATA_TYPE",
166: "PROPERTY_ARRAY_TYPE",
167: "PROPERTY_CELL_TYPE",
168: "SHARED_FUNCTION_INFO_TYPE",
169: "WEAK_ARRAY_LIST_TYPE",
170: "WEAK_CELL_TYPE",
171: "JS_PROXY_TYPE",
1057: "JS_OBJECT_TYPE",
171: "JS_GLOBAL_OBJECT_TYPE",
172: "JS_GLOBAL_PROXY_TYPE",
173: "JS_MODULE_NAMESPACE_TYPE",
172: "JS_GLOBAL_OBJECT_TYPE",
173: "JS_GLOBAL_PROXY_TYPE",
174: "JS_MODULE_NAMESPACE_TYPE",
1040: "JS_SPECIAL_API_OBJECT_TYPE",
1041: "JS_PRIMITIVE_WRAPPER_TYPE",
1042: "JS_MAP_KEY_ITERATOR_TYPE",
@ -192,77 +193,77 @@ INSTANCE_TYPES = {
# List of known V8 maps.
KNOWN_MAPS = {
("read_only_space", 0x00121): (162, "FreeSpaceMap"),
("read_only_space", 0x00149): (163, "MetaMap"),
("read_only_space", 0x00121): (163, "FreeSpaceMap"),
("read_only_space", 0x00149): (164, "MetaMap"),
("read_only_space", 0x0018d): (67, "NullMap"),
("read_only_space", 0x001c5): (157, "DescriptorArrayMap"),
("read_only_space", 0x001f5): (152, "WeakFixedArrayMap"),
("read_only_space", 0x0021d): (161, "OnePointerFillerMap"),
("read_only_space", 0x00245): (161, "TwoPointerFillerMap"),
("read_only_space", 0x001c5): (158, "DescriptorArrayMap"),
("read_only_space", 0x001f5): (153, "WeakFixedArrayMap"),
("read_only_space", 0x0021d): (162, "OnePointerFillerMap"),
("read_only_space", 0x00245): (162, "TwoPointerFillerMap"),
("read_only_space", 0x00289): (67, "UninitializedMap"),
("read_only_space", 0x002cd): (8, "OneByteInternalizedStringMap"),
("read_only_space", 0x00329): (67, "UndefinedMap"),
("read_only_space", 0x0035d): (66, "HeapNumberMap"),
("read_only_space", 0x003a1): (67, "TheHoleMap"),
("read_only_space", 0x00401): (67, "BooleanMap"),
("read_only_space", 0x00489): (134, "ByteArrayMap"),
("read_only_space", 0x004b1): (119, "FixedArrayMap"),
("read_only_space", 0x004d9): (119, "FixedCOWArrayMap"),
("read_only_space", 0x00501): (120, "HashTableMap"),
("read_only_space", 0x00489): (135, "ByteArrayMap"),
("read_only_space", 0x004b1): (120, "FixedArrayMap"),
("read_only_space", 0x004d9): (120, "FixedCOWArrayMap"),
("read_only_space", 0x00501): (121, "HashTableMap"),
("read_only_space", 0x00529): (64, "SymbolMap"),
("read_only_space", 0x00551): (40, "OneByteStringMap"),
("read_only_space", 0x00579): (132, "ScopeInfoMap"),
("read_only_space", 0x005a1): (167, "SharedFunctionInfoMap"),
("read_only_space", 0x005c9): (155, "CodeMap"),
("read_only_space", 0x005f1): (154, "CellMap"),
("read_only_space", 0x00619): (166, "GlobalPropertyCellMap"),
("read_only_space", 0x00579): (133, "ScopeInfoMap"),
("read_only_space", 0x005a1): (168, "SharedFunctionInfoMap"),
("read_only_space", 0x005c9): (156, "CodeMap"),
("read_only_space", 0x005f1): (155, "CellMap"),
("read_only_space", 0x00619): (167, "GlobalPropertyCellMap"),
("read_only_space", 0x00641): (70, "ForeignMap"),
("read_only_space", 0x00669): (153, "TransitionArrayMap"),
("read_only_space", 0x00669): (154, "TransitionArrayMap"),
("read_only_space", 0x00691): (45, "ThinOneByteStringMap"),
("read_only_space", 0x006b9): (160, "FeedbackVectorMap"),
("read_only_space", 0x006b9): (161, "FeedbackVectorMap"),
("read_only_space", 0x0070d): (67, "ArgumentsMarkerMap"),
("read_only_space", 0x0076d): (67, "ExceptionMap"),
("read_only_space", 0x007c9): (67, "TerminationExceptionMap"),
("read_only_space", 0x00831): (67, "OptimizedOutMap"),
("read_only_space", 0x00891): (67, "StaleRegisterMap"),
("read_only_space", 0x008d5): (133, "ScriptContextTableMap"),
("read_only_space", 0x008fd): (130, "ClosureFeedbackCellArrayMap"),
("read_only_space", 0x00925): (159, "FeedbackMetadataArrayMap"),
("read_only_space", 0x0094d): (119, "ArrayListMap"),
("read_only_space", 0x008d5): (134, "ScriptContextTableMap"),
("read_only_space", 0x008fd): (131, "ClosureFeedbackCellArrayMap"),
("read_only_space", 0x00925): (160, "FeedbackMetadataArrayMap"),
("read_only_space", 0x0094d): (120, "ArrayListMap"),
("read_only_space", 0x00975): (65, "BigIntMap"),
("read_only_space", 0x0099d): (131, "ObjectBoilerplateDescriptionMap"),
("read_only_space", 0x009c5): (135, "BytecodeArrayMap"),
("read_only_space", 0x009ed): (156, "CodeDataContainerMap"),
("read_only_space", 0x00a15): (136, "FixedDoubleArrayMap"),
("read_only_space", 0x00a3d): (122, "GlobalDictionaryMap"),
("read_only_space", 0x0099d): (132, "ObjectBoilerplateDescriptionMap"),
("read_only_space", 0x009c5): (136, "BytecodeArrayMap"),
("read_only_space", 0x009ed): (157, "CodeDataContainerMap"),
("read_only_space", 0x00a15): (137, "FixedDoubleArrayMap"),
("read_only_space", 0x00a3d): (123, "GlobalDictionaryMap"),
("read_only_space", 0x00a65): (96, "ManyClosuresCellMap"),
("read_only_space", 0x00a8d): (119, "ModuleInfoMap"),
("read_only_space", 0x00ab5): (123, "NameDictionaryMap"),
("read_only_space", 0x00a8d): (120, "ModuleInfoMap"),
("read_only_space", 0x00ab5): (124, "NameDictionaryMap"),
("read_only_space", 0x00add): (96, "NoClosuresCellMap"),
("read_only_space", 0x00b05): (124, "NumberDictionaryMap"),
("read_only_space", 0x00b05): (125, "NumberDictionaryMap"),
("read_only_space", 0x00b2d): (96, "OneClosureCellMap"),
("read_only_space", 0x00b55): (125, "OrderedHashMapMap"),
("read_only_space", 0x00b7d): (126, "OrderedHashSetMap"),
("read_only_space", 0x00ba5): (127, "OrderedNameDictionaryMap"),
("read_only_space", 0x00bcd): (164, "PreparseDataMap"),
("read_only_space", 0x00bf5): (165, "PropertyArrayMap"),
("read_only_space", 0x00b55): (126, "OrderedHashMapMap"),
("read_only_space", 0x00b7d): (127, "OrderedHashSetMap"),
("read_only_space", 0x00ba5): (128, "OrderedNameDictionaryMap"),
("read_only_space", 0x00bcd): (165, "PreparseDataMap"),
("read_only_space", 0x00bf5): (166, "PropertyArrayMap"),
("read_only_space", 0x00c1d): (92, "SideEffectCallHandlerInfoMap"),
("read_only_space", 0x00c45): (92, "SideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x00c6d): (92, "NextCallSideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x00c95): (128, "SimpleNumberDictionaryMap"),
("read_only_space", 0x00cbd): (119, "SloppyArgumentsElementsMap"),
("read_only_space", 0x00ce5): (147, "SmallOrderedHashMapMap"),
("read_only_space", 0x00d0d): (148, "SmallOrderedHashSetMap"),
("read_only_space", 0x00d35): (149, "SmallOrderedNameDictionaryMap"),
("read_only_space", 0x00c95): (129, "SimpleNumberDictionaryMap"),
("read_only_space", 0x00cbd): (120, "SloppyArgumentsElementsMap"),
("read_only_space", 0x00ce5): (148, "SmallOrderedHashMapMap"),
("read_only_space", 0x00d0d): (149, "SmallOrderedHashSetMap"),
("read_only_space", 0x00d35): (150, "SmallOrderedNameDictionaryMap"),
("read_only_space", 0x00d5d): (68, "SourceTextModuleMap"),
("read_only_space", 0x00d85): (129, "StringTableMap"),
("read_only_space", 0x00d85): (130, "StringTableMap"),
("read_only_space", 0x00dad): (69, "SyntheticModuleMap"),
("read_only_space", 0x00dd5): (151, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x00dfd): (150, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x00e25): (168, "WeakArrayListMap"),
("read_only_space", 0x00e4d): (121, "EphemeronHashTableMap"),
("read_only_space", 0x00e75): (158, "EmbedderDataArrayMap"),
("read_only_space", 0x00e9d): (169, "WeakCellMap"),
("read_only_space", 0x00dd5): (152, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x00dfd): (151, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x00e25): (169, "WeakArrayListMap"),
("read_only_space", 0x00e4d): (122, "EphemeronHashTableMap"),
("read_only_space", 0x00e75): (159, "EmbedderDataArrayMap"),
("read_only_space", 0x00e9d): (170, "WeakCellMap"),
("read_only_space", 0x00ec5): (32, "StringMap"),
("read_only_space", 0x00eed): (41, "ConsOneByteStringMap"),
("read_only_space", 0x00f15): (33, "ConsStringMap"),
@ -305,32 +306,33 @@ KNOWN_MAPS = {
("read_only_space", 0x035b9): (100, "InterpreterDataMap"),
("read_only_space", 0x035e1): (101, "PromiseCapabilityMap"),
("read_only_space", 0x03609): (102, "PromiseReactionMap"),
("read_only_space", 0x03631): (103, "PrototypeInfoMap"),
("read_only_space", 0x03659): (104, "ScriptMap"),
("read_only_space", 0x03681): (108, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x036a9): (109, "StackFrameInfoMap"),
("read_only_space", 0x036d1): (110, "StackTraceFrameMap"),
("read_only_space", 0x036f9): (111, "TemplateObjectDescriptionMap"),
("read_only_space", 0x03721): (112, "Tuple2Map"),
("read_only_space", 0x03749): (113, "WasmCapiFunctionDataMap"),
("read_only_space", 0x03771): (114, "WasmDebugInfoMap"),
("read_only_space", 0x03799): (115, "WasmExceptionTagMap"),
("read_only_space", 0x037c1): (116, "WasmExportedFunctionDataMap"),
("read_only_space", 0x037e9): (117, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x03811): (118, "WasmJSFunctionDataMap"),
("read_only_space", 0x03839): (99, "InternalClassMap"),
("read_only_space", 0x03861): (106, "SmiPairMap"),
("read_only_space", 0x03889): (105, "SmiBoxMap"),
("read_only_space", 0x038b1): (107, "SortStateMap"),
("read_only_space", 0x038d9): (85, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x03901): (85, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x03929): (76, "LoadHandler1Map"),
("read_only_space", 0x03951): (76, "LoadHandler2Map"),
("read_only_space", 0x03979): (76, "LoadHandler3Map"),
("read_only_space", 0x039a1): (77, "StoreHandler0Map"),
("read_only_space", 0x039c9): (77, "StoreHandler1Map"),
("read_only_space", 0x039f1): (77, "StoreHandler2Map"),
("read_only_space", 0x03a19): (77, "StoreHandler3Map"),
("read_only_space", 0x03631): (103, "PropertyDescriptorObjectMap"),
("read_only_space", 0x03659): (104, "PrototypeInfoMap"),
("read_only_space", 0x03681): (105, "ScriptMap"),
("read_only_space", 0x036a9): (109, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x036d1): (110, "StackFrameInfoMap"),
("read_only_space", 0x036f9): (111, "StackTraceFrameMap"),
("read_only_space", 0x03721): (112, "TemplateObjectDescriptionMap"),
("read_only_space", 0x03749): (113, "Tuple2Map"),
("read_only_space", 0x03771): (114, "WasmCapiFunctionDataMap"),
("read_only_space", 0x03799): (115, "WasmDebugInfoMap"),
("read_only_space", 0x037c1): (116, "WasmExceptionTagMap"),
("read_only_space", 0x037e9): (117, "WasmExportedFunctionDataMap"),
("read_only_space", 0x03811): (118, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x03839): (119, "WasmJSFunctionDataMap"),
("read_only_space", 0x03861): (99, "InternalClassMap"),
("read_only_space", 0x03889): (107, "SmiPairMap"),
("read_only_space", 0x038b1): (106, "SmiBoxMap"),
("read_only_space", 0x038d9): (108, "SortStateMap"),
("read_only_space", 0x03901): (85, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x03929): (85, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x03951): (76, "LoadHandler1Map"),
("read_only_space", 0x03979): (76, "LoadHandler2Map"),
("read_only_space", 0x039a1): (76, "LoadHandler3Map"),
("read_only_space", 0x039c9): (77, "StoreHandler0Map"),
("read_only_space", 0x039f1): (77, "StoreHandler1Map"),
("read_only_space", 0x03a19): (77, "StoreHandler2Map"),
("read_only_space", 0x03a41): (77, "StoreHandler3Map"),
("map_space", 0x00121): (1057, "ExternalMap"),
("map_space", 0x00149): (1073, "JSMessageObjectMap"),
}