Revert "[wasm-gc] Implement rtt.sub"

This reverts commit 04ce88eae5.

Reason for revert: TSAN failure: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32135

Original change's description:
> [wasm-gc] Implement rtt.sub
> 
> RTTs are internally represented as Maps. To store supertype information,
> this patch introduces a WasmTypeInfo object, which is installed on Wasm
> objects' Maps and points at both the off-heap type information and the
> parent RTT.
> In this patch, rtt.sub always creates a fresh RTT. The canonicalization
> that the proposal requires will be implemented later.
> 
> Bug: v8:7748
> Change-Id: I8286dd11f520966155cd95c2bd844ec34fccd131
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260566
> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68564}

TBR=ulan@chromium.org,jkummerow@chromium.org,tebbi@chromium.org

Change-Id: I311732e1ced4de7a58b87d4a9b6056e0d62aa986
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7748
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270734
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68567}
This commit is contained in:
Shu-yu Guo 2020-06-26 18:16:24 +00:00 committed by Commit Bot
parent ce9c43c307
commit 304565661b
29 changed files with 312 additions and 486 deletions

View File

@ -29,7 +29,6 @@ extern runtime WasmI32AtomicWait(
Context, WasmInstanceObject, Number, Number, BigInt): Smi;
extern runtime WasmI64AtomicWait(
Context, WasmInstanceObject, Number, BigInt, BigInt): Smi;
extern runtime WasmAllocateRtt(Context, Smi, Map): Map;
}
namespace unsafe {
@ -238,11 +237,6 @@ builtin WasmAllocateStruct(implicit context: Context)(mapIndex: Smi):
return result;
}
builtin WasmAllocateRtt(implicit context: Context)(
typeIndex: Smi, parent: Map): Map {
tail runtime::WasmAllocateRtt(context, typeIndex, parent);
}
builtin WasmInt32ToNumber(value: int32): Number {
return ChangeInt32ToTagged(value);
}

View File

@ -324,7 +324,6 @@ Type::bitset BitsetType::Lub(const MapRefLike& map) {
case UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE:
case UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE:
case COVERAGE_INFO_TYPE:
case WASM_TYPE_INFO_TYPE:
return kOtherInternal;
// Remaining instance types are unsupported for now. If any of them do

View File

@ -5329,18 +5329,6 @@ Node* WasmGraphBuilder::RttCanon(wasm::HeapType type) {
return LOAD_FIXED_ARRAY_SLOT_PTR(maps_list, type_index);
}
Node* WasmGraphBuilder::RttSub(wasm::HeapType type, Node* parent_rtt) {
if (is_generic_heap_type(type)) {
// TODO(7748): Implement this. {type} could be eqref, with {parent_rtt}
// being (rtt.canon anyref).
UNIMPLEMENTED();
}
return CALL_BUILTIN(
WasmAllocateRtt,
graph()->NewNode(mcgraph()->common()->NumberConstant(type)), parent_rtt,
LOAD_INSTANCE_FIELD(NativeContext, MachineType::TaggedPointer()));
}
Node* WasmGraphBuilder::StructGet(Node* struct_object,
const wasm::StructType* struct_type,
uint32_t field_index, CheckForNull null_check,

View File

@ -400,7 +400,6 @@ class WasmGraphBuilder {
wasm::WasmCodePosition position);
Node* ArrayLen(Node* array_object, wasm::WasmCodePosition position);
Node* RttCanon(wasm::HeapType type);
Node* RttSub(wasm::HeapType type, Node* parent_rtt);
bool has_simd() const { return has_simd_; }

View File

@ -251,9 +251,6 @@ void HeapObject::HeapObjectVerify(Isolate* isolate) {
TORQUE_INSTANCE_CHECKERS_MULTIPLE_FULLY_DEFINED(MAKE_TORQUE_CASE)
#undef MAKE_TORQUE_CASE
case FOREIGN_TYPE:
break; // No interesting fields.
case ALLOCATION_SITE_TYPE:
AllocationSite::cast(*this).AllocationSiteVerify(isolate);
break;

View File

@ -220,9 +220,6 @@ void HeapObject::HeapObjectPrint(std::ostream& os) { // NOLINT
TORQUE_INSTANCE_CHECKERS_MULTIPLE_FULLY_DEFINED(MAKE_TORQUE_CASE)
#undef MAKE_TORQUE_CASE
case FOREIGN_TYPE:
Foreign::cast(*this).ForeignPrint(os);
break;
case ALLOCATION_SITE_TYPE:
AllocationSite::cast(*this).AllocationSitePrint(os);
break;
@ -1654,13 +1651,6 @@ void AsmWasmData::AsmWasmDataPrint(std::ostream& os) { // NOLINT
os << "\n";
}
void WasmTypeInfo::WasmTypeInfoPrint(std::ostream& os) { // NOLINT
PrintHeader(os, "WasmTypeInfo");
os << "\n - type address: " << reinterpret_cast<void*>(foreign_address());
os << "\n - parent: " << Brief(parent());
os << "\n";
}
void WasmStruct::WasmStructPrint(std::ostream& os) { // NOLINT
PrintHeader(os, "WasmStruct");
wasm::StructType* struct_type = type();

View File

@ -1347,17 +1347,6 @@ Handle<Foreign> Factory::NewForeign(Address addr) {
return foreign;
}
Handle<WasmTypeInfo> Factory::NewWasmTypeInfo(Address type_address,
Handle<Map> parent) {
Map map = *wasm_type_info_map();
HeapObject result = AllocateRawWithImmortalMap(map.instance_size(),
AllocationType::kYoung, map);
Handle<WasmTypeInfo> info(WasmTypeInfo::cast(result), isolate());
info->set_foreign_address(isolate(), type_address);
info->set_parent(*parent);
return info;
}
Handle<Cell> Factory::NewCell(Handle<Object> value) {
STATIC_ASSERT(Cell::kSize <= kMaxRegularHeapObjectSize);
HeapObject result = AllocateRawWithImmortalMap(
@ -2499,6 +2488,13 @@ Handle<JSGeneratorObject> Factory::NewJSGeneratorObject(
return Handle<JSGeneratorObject>::cast(NewJSObjectFromMap(map));
}
Handle<WasmStruct> Factory::NewWasmStruct(Handle<Map> map) {
int size = map->instance_size();
HeapObject result = AllocateRaw(size, AllocationType::kYoung);
result.set_map_after_allocation(*map);
return handle(WasmStruct::cast(result), isolate());
}
Handle<SourceTextModule> Factory::NewSourceTextModule(
Handle<SharedFunctionInfo> code) {
Handle<SourceTextModuleInfo> module_info(

View File

@ -553,8 +553,7 @@ class V8_EXPORT_PRIVATE Factory : public FactoryBase<Factory> {
Handle<JSModuleNamespace> NewJSModuleNamespace();
Handle<WasmTypeInfo> NewWasmTypeInfo(Address type_address,
Handle<Map> parent);
Handle<WasmStruct> NewWasmStruct(Handle<Map> map);
Handle<SourceTextModule> NewSourceTextModule(Handle<SharedFunctionInfo> code);
Handle<SyntheticModule> NewSyntheticModule(

View File

@ -61,8 +61,7 @@ namespace internal {
V(WasmCapiFunctionData) \
V(WasmIndirectFunctionTable) \
V(WasmInstanceObject) \
V(WasmStruct) \
V(WasmTypeInfo)
V(WasmStruct)
#define FORWARD_DECLARE(TypeName) class TypeName;
TYPED_VISITOR_ID_LIST(FORWARD_DECLARE)

View File

@ -505,8 +505,6 @@ bool Heap::CreateInitialMaps() {
ALLOCATE_MAP(CODE_DATA_CONTAINER_TYPE, CodeDataContainer::kSize,
code_data_container)
ALLOCATE_MAP(WASM_TYPE_INFO_TYPE, WasmTypeInfo::kSize, wasm_type_info)
ALLOCATE_MAP(WEAK_CELL_TYPE, WeakCell::kSize, weak_cell)
ALLOCATE_MAP(JS_MESSAGE_OBJECT_TYPE, JSMessageObject::kHeaderSize,

View File

@ -5,6 +5,8 @@
#ifndef V8_OBJECTS_MAP_INL_H_
#define V8_OBJECTS_MAP_INL_H_
#include "src/objects/map.h"
#include "src/heap/heap-write-barrier-inl.h"
#include "src/objects/api-callbacks-inl.h"
#include "src/objects/cell-inl.h"
@ -12,14 +14,12 @@
#include "src/objects/field-type.h"
#include "src/objects/instance-type-inl.h"
#include "src/objects/layout-descriptor-inl.h"
#include "src/objects/map.h"
#include "src/objects/objects-inl.h"
#include "src/objects/property.h"
#include "src/objects/prototype-info-inl.h"
#include "src/objects/shared-function-info.h"
#include "src/objects/templates-inl.h"
#include "src/objects/transitions-inl.h"
#include "src/wasm/wasm-objects-inl.h"
// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"
@ -754,7 +754,7 @@ ACCESSORS_CHECKED2(Map, constructor_or_backpointer, Object,
ACCESSORS_CHECKED(Map, native_context, NativeContext,
kConstructorOrBackPointerOrNativeContextOffset,
IsContextMap())
ACCESSORS_CHECKED(Map, wasm_type_info, WasmTypeInfo,
ACCESSORS_CHECKED(Map, wasm_type_info, Foreign,
kConstructorOrBackPointerOrNativeContextOffset,
IsWasmStructMap() || IsWasmArrayMap())

View File

@ -368,8 +368,6 @@ VisitorId Map::GetVisitorId(Map map) {
return kVisitWasmArray;
case WASM_STRUCT_TYPE:
return kVisitWasmStruct;
case WASM_TYPE_INFO_TYPE:
return kVisitWasmTypeInfo;
#define MAKE_TQ_CASE(TYPE, Name) \
case TYPE: \

View File

@ -77,7 +77,6 @@ enum InstanceType : uint16_t;
V(WasmInstanceObject) \
V(WasmArray) \
V(WasmStruct) \
V(WasmTypeInfo) \
V(WeakCell)
#define TORQUE_VISITOR_ID_LIST(V) \
@ -579,7 +578,7 @@ class Map : public HeapObject {
// and with the Wasm type info for WebAssembly object maps.
DECL_ACCESSORS(constructor_or_backpointer, Object)
DECL_ACCESSORS(native_context, NativeContext)
DECL_ACCESSORS(wasm_type_info, WasmTypeInfo)
DECL_ACCESSORS(wasm_type_info, Foreign)
DECL_GETTER(GetConstructor, Object)
DECL_GETTER(GetFunctionTemplateInfo, FunctionTemplateInfo)
inline void SetConstructor(Object constructor,

View File

@ -232,7 +232,6 @@ class ZoneForwardList;
V(WasmMemoryObject) \
V(WasmModuleObject) \
V(WasmStruct) \
V(WasmTypeInfo) \
V(WasmTableObject) \
V(WeakFixedArray) \
V(WeakArrayList) \

View File

@ -601,23 +601,6 @@ class Foreign::BodyDescriptor final : public BodyDescriptorBase {
static inline int SizeOf(Map map, HeapObject object) { return kSize; }
};
class WasmTypeInfo::BodyDescriptor final : public BodyDescriptorBase {
public:
static bool IsValidSlot(Map map, HeapObject obj, int offset) {
UNREACHABLE();
}
template <typename ObjectVisitor>
static inline void IterateBody(Map map, HeapObject obj, int object_size,
ObjectVisitor* v) {
Foreign::BodyDescriptor::IterateBody<ObjectVisitor>(map, obj, object_size,
v);
IteratePointer(obj, kParentOffset, v);
}
static inline int SizeOf(Map map, HeapObject object) { return kSize; }
};
class ExternalOneByteString::BodyDescriptor final : public BodyDescriptorBase {
public:
static bool IsValidSlot(Map map, HeapObject obj, int offset) { return false; }
@ -987,8 +970,6 @@ ReturnType BodyDescriptorApply(InstanceType type, T1 p1, T2 p2, T3 p3, T4 p4) {
return Op::template apply<WasmArray::BodyDescriptor>(p1, p2, p3, p4);
case WASM_STRUCT_TYPE:
return Op::template apply<WasmStruct::BodyDescriptor>(p1, p2, p3, p4);
case WASM_TYPE_INFO_TYPE:
return Op::template apply<WasmTypeInfo::BodyDescriptor>(p1, p2, p3, p4);
case JS_OBJECT_TYPE:
case JS_ERROR_TYPE:
case JS_ARGUMENTS_OBJECT_TYPE:

View File

@ -5190,8 +5190,7 @@ bool SharedFunctionInfo::PassesFilter(const char* raw_filter) {
bool SharedFunctionInfo::HasSourceCode() const {
ReadOnlyRoots roots = GetReadOnlyRoots();
return !script().IsUndefined(roots) &&
!Script::cast(script()).source().IsUndefined(roots) &&
String::cast(Script::cast(script()).source()).length() > 0;
!Script::cast(script()).source().IsUndefined(roots);
}
void SharedFunctionInfo::DiscardCompiledMetadata(

View File

@ -118,7 +118,6 @@ class Symbol;
UncompiledDataWithoutPreparseDataMap) \
V(Map, uncompiled_data_with_preparse_data_map, \
UncompiledDataWithPreparseDataMap) \
V(Map, wasm_type_info_map, WasmTypeInfoMap) \
V(Map, weak_fixed_array_map, WeakFixedArrayMap) \
V(Map, weak_array_list_map, WeakArrayListMap) \
V(Map, ephemeron_hash_table_map, EphemeronHashTableMap) \

View File

@ -493,25 +493,5 @@ RUNTIME_FUNCTION(Runtime_WasmDebugBreak) {
return ReadOnlyRoots(isolate).undefined_value();
}
RUNTIME_FUNCTION(Runtime_WasmAllocateRtt) {
ClearThreadInWasmScope flag_scope;
HandleScope scope(isolate);
DCHECK_EQ(2, args.length());
CONVERT_UINT32_ARG_CHECKED(type_index, 0);
CONVERT_ARG_HANDLE_CHECKED(Map, parent, 1);
Handle<WasmInstanceObject> instance(GetWasmInstanceOnStackTop(isolate),
isolate);
const wasm::WasmModule* module = instance->module();
Handle<Map> rtt;
if (module->has_struct(type_index)) {
rtt = wasm::CreateStructMap(isolate, module, type_index, parent);
} else if (module->has_array(type_index)) {
rtt = wasm::CreateArrayMap(isolate, module, type_index, parent);
} else {
UNREACHABLE();
}
return *rtt;
}
} // namespace internal
} // namespace v8

View File

@ -574,8 +574,7 @@ namespace internal {
F(WasmTableFill, 4, 1) \
F(WasmIsValidFuncRefValue, 1, 1) \
F(WasmCompileLazy, 2, 1) \
F(WasmDebugBreak, 0, 1) \
F(WasmAllocateRtt, 2, 1)
F(WasmDebugBreak, 0, 1)
#define FOR_EACH_INTRINSIC_WEAKREF(F, I) \
F(ShrinkFinalizationRegistryUnregisterTokenMap, 1, 1)

View File

@ -3617,11 +3617,6 @@ class LiftoffCompiler {
// TODO(7748): Implement.
unsupported(decoder, kGC, "rtt.canon");
}
void RttSub(FullDecoder* decoder, const HeapTypeImmediate<validate>& imm,
const Value& parent, Value* result) {
// TODO(7748): Implement.
unsupported(decoder, kGC, "rtt.sub");
}
void PassThrough(FullDecoder* decoder, const Value& from, Value* to) {
// TODO(7748): Implement.

View File

@ -966,8 +966,6 @@ struct ControlBase {
const Value& value) \
F(ArrayLen, const Value& array_obj, Value* result) \
F(RttCanon, const HeapTypeImmediate<validate>& imm, Value* result) \
F(RttSub, const HeapTypeImmediate<validate>& imm, const Value& parent, \
Value* result) \
F(PassThrough, const Value& from, Value* to)
// Generic Wasm bytecode decoder with utilities for decoding immediates,
@ -1690,14 +1688,15 @@ class WasmDecoder : public Decoder {
BranchDepthImmediate<validate> imm(decoder, pc + 2);
return 2 + imm.length;
}
case kExprRttCanon:
case kExprRttSub: {
// TODO(7748): Account for rtt.sub's additional immediates if
// they stick.
case kExprRttCanon: {
HeapTypeImmediate<validate> imm(WasmFeatures::All(), decoder,
pc + 2);
return 2 + imm.length;
}
case kExprRttSub:
// TODO(7748): Implement.
decoder->error(pc, "rtt.sub not implemented yet");
return 2;
case kExprI31New:
case kExprI31GetS:
@ -3459,31 +3458,6 @@ class WasmFullDecoder : public WasmDecoder<validate> {
CALL_INTERFACE_IF_REACHABLE(RttCanon, imm, value);
break;
}
case kExprRttSub: {
// TODO(7748): The proposal currently includes additional immediates
// here: the subtyping depth <n> and the "parent type", see:
// https://github.com/WebAssembly/gc/commit/20a80e34 .
// If these immediates don't get dropped (in the spirit of
// https://github.com/WebAssembly/function-references/pull/31 ),
// implement them here.
HeapTypeImmediate<validate> imm(this->enabled_, this, this->pc_ + 2);
len += imm.length;
if (!this->Validate(this->pc_ + 2, imm)) break;
Value parent = Pop();
// TODO(7748): Consider exposing "IsSubtypeOfHeap(HeapType t1, t2)" so
// we can avoid creating (ref heaptype) wrappers here.
if (!VALIDATE(parent.type.kind() == ValueType::kRtt &&
IsSubtypeOf(
ValueType::Ref(imm.type, kNonNullable),
ValueType::Ref(parent.type.heap_type(), kNonNullable),
this->module_))) {
this->error(this->pc_, "rtt.sub requires a supertype rtt on stack");
break;
}
Value* value = Push(ValueType::Rtt(imm.type, parent.type.depth() + 1));
CALL_INTERFACE_IF_REACHABLE(RttSub, imm, parent, value);
break;
}
default:
this->error("invalid gc opcode");
return 0;

View File

@ -714,11 +714,6 @@ class WasmGraphBuildingInterface {
result->node = BUILD(RttCanon, imm.type);
}
void RttSub(FullDecoder* decoder, const HeapTypeImmediate<validate>& imm,
const Value& parent, Value* result) {
result->node = BUILD(RttSub, imm.type, parent.node);
}
void PassThrough(FullDecoder* decoder, const Value& from, Value* to) {
to->node = from.node;
}

View File

@ -86,11 +86,8 @@ class CompileImportWrapperTask final : public CancelableTask {
WasmImportWrapperCache::ModificationScope* const cache_scope_;
};
} // namespace
// TODO(jkummerow): Move these elsewhere.
Handle<Map> CreateStructMap(Isolate* isolate, const WasmModule* module,
int struct_index, Handle<Map> rtt_parent) {
int struct_index) {
const wasm::StructType* type = module->struct_type(struct_index);
int inobject_properties = 0;
DCHECK_LE(type->total_fields_size(), kMaxInt - WasmStruct::kHeaderSize);
@ -99,8 +96,8 @@ Handle<Map> CreateStructMap(Isolate* isolate, const WasmModule* module,
InstanceType instance_type = WASM_STRUCT_TYPE;
// TODO(jkummerow): If NO_ELEMENTS were supported, we could use that here.
ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND;
Handle<WasmTypeInfo> type_info = isolate->factory()->NewWasmTypeInfo(
reinterpret_cast<Address>(type), rtt_parent);
Handle<Foreign> type_info =
isolate->factory()->NewForeign(reinterpret_cast<Address>(type));
Handle<Map> map = isolate->factory()->NewMap(
instance_type, instance_size, elements_kind, inobject_properties);
map->set_wasm_type_info(*type_info);
@ -108,20 +105,22 @@ Handle<Map> CreateStructMap(Isolate* isolate, const WasmModule* module,
}
Handle<Map> CreateArrayMap(Isolate* isolate, const WasmModule* module,
int array_index, Handle<Map> rtt_parent) {
int array_index) {
const wasm::ArrayType* type = module->array_type(array_index);
int inobject_properties = 0;
int instance_size = kVariableSizeSentinel;
InstanceType instance_type = WASM_ARRAY_TYPE;
ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND;
Handle<WasmTypeInfo> type_info = isolate->factory()->NewWasmTypeInfo(
reinterpret_cast<Address>(type), rtt_parent);
Handle<Foreign> type_info =
isolate->factory()->NewForeign(reinterpret_cast<Address>(type));
Handle<Map> map = isolate->factory()->NewMap(
instance_type, instance_size, elements_kind, inobject_properties);
map->set_wasm_type_info(*type_info);
return map;
}
} // namespace
// A helper class to simplify instantiating a module from a module object.
// It closes over the {Isolate}, the {ErrorThrower}, etc.
class InstanceBuilder {
@ -581,19 +580,15 @@ MaybeHandle<WasmInstanceObject> InstanceBuilder::Build() {
}
Handle<FixedArray> maps =
isolate_->factory()->NewUninitializedFixedArray(count);
// TODO(7748): Do we want a different sentinel here?
Handle<Map> anyref_sentinel_map = isolate_->factory()->null_map();
int map_index = 0;
for (int i = 0; i < static_cast<int>(module_->type_kinds.size()); i++) {
int index = 0;
if (module_->type_kinds[i] == kWasmStructTypeCode) {
Handle<Map> map =
CreateStructMap(isolate_, module_, i, anyref_sentinel_map);
maps->set(map_index++, *map);
Handle<Map> map = CreateStructMap(isolate_, module_, i);
maps->set(index++, *map);
}
if (module_->type_kinds[i] == kWasmArrayTypeCode) {
Handle<Map> map =
CreateArrayMap(isolate_, module_, i, anyref_sentinel_map);
maps->set(map_index++, *map);
Handle<Map> map = CreateArrayMap(isolate_, module_, i);
maps->set(index++, *map);
}
}
instance->set_managed_object_maps(*maps);

View File

@ -36,7 +36,6 @@ OBJECT_CONSTRUCTORS_IMPL(WasmMemoryObject, JSObject)
OBJECT_CONSTRUCTORS_IMPL(WasmModuleObject, JSObject)
OBJECT_CONSTRUCTORS_IMPL(WasmTableObject, JSObject)
OBJECT_CONSTRUCTORS_IMPL(AsmWasmData, Struct)
TQ_OBJECT_CONSTRUCTORS_IMPL(WasmTypeInfo)
TQ_OBJECT_CONSTRUCTORS_IMPL(WasmStruct)
TQ_OBJECT_CONSTRUCTORS_IMPL(WasmArray)
@ -48,7 +47,6 @@ CAST_ACCESSOR(WasmMemoryObject)
CAST_ACCESSOR(WasmModuleObject)
CAST_ACCESSOR(WasmTableObject)
CAST_ACCESSOR(AsmWasmData)
CAST_ACCESSOR(WasmTypeInfo)
CAST_ACCESSOR(WasmStruct)
CAST_ACCESSOR(WasmArray)
@ -401,8 +399,8 @@ ACCESSORS(AsmWasmData, export_wrappers, FixedArray, kExportWrappersOffset)
ACCESSORS(AsmWasmData, uses_bitset, HeapNumber, kUsesBitsetOffset)
wasm::StructType* WasmStruct::type(Map map) {
WasmTypeInfo type_info = map.wasm_type_info();
return reinterpret_cast<wasm::StructType*>(type_info.foreign_address());
Foreign foreign = map.wasm_type_info();
return reinterpret_cast<wasm::StructType*>(foreign.foreign_address());
}
wasm::StructType* WasmStruct::GcSafeType(Map map) {
@ -424,8 +422,8 @@ ObjectSlot WasmStruct::RawField(int raw_offset) {
wasm::ArrayType* WasmArray::type(Map map) {
DCHECK_EQ(WASM_ARRAY_TYPE, map.instance_type());
WasmTypeInfo type_info = map.wasm_type_info();
return reinterpret_cast<wasm::ArrayType*>(type_info.foreign_address());
Foreign foreign = map.wasm_type_info();
return reinterpret_cast<wasm::ArrayType*>(foreign.foreign_address());
}
wasm::ArrayType* WasmArray::GcSafeType(Map map) {

View File

@ -894,16 +894,6 @@ class AsmWasmData : public Struct {
OBJECT_CONSTRUCTORS(AsmWasmData, Struct);
};
class WasmTypeInfo : public TorqueGeneratedWasmTypeInfo<WasmTypeInfo, Foreign> {
public:
DECL_CAST(WasmTypeInfo)
DECL_PRINTER(WasmTypeInfo)
class BodyDescriptor;
TQ_OBJECT_CONSTRUCTORS(WasmTypeInfo)
};
class WasmStruct : public TorqueGeneratedWasmStruct<WasmStruct, HeapObject> {
public:
static inline wasm::StructType* type(Map map);
@ -938,15 +928,6 @@ class WasmArray : public TorqueGeneratedWasmArray<WasmArray, HeapObject> {
#undef DECL_OPTIONAL_ACCESSORS
namespace wasm {
Handle<Map> CreateStructMap(Isolate* isolate, const WasmModule* module,
int struct_index, Handle<Map> rtt_parent);
Handle<Map> CreateArrayMap(Isolate* isolate, const WasmModule* module,
int array_index, Handle<Map> rtt_parent);
} // namespace wasm
} // namespace internal
} // namespace v8

View File

@ -92,11 +92,6 @@ extern class AsmWasmData extends Struct {
uses_bitset: HeapNumber;
}
@generateCppClass
extern class WasmTypeInfo extends Foreign {
parent: Map;
}
@generateCppClass
extern class WasmStruct extends HeapObject {
}

View File

@ -547,20 +547,12 @@ TEST(WasmPackedArrayS) {
TEST(BasicRTT) {
WasmGCTester tester;
uint32_t type_index = tester.DefineStruct({F(wasm::kWasmI32, true)});
uint32_t subtype_index =
tester.DefineStruct({F(wasm::kWasmI32, true), F(wasm::kWasmF64, true)});
ValueType kRttTypes[] = {
ValueType::Rtt(static_cast<HeapType>(type_index), 1)};
FunctionSig sig_t_v(1, 0, kRttTypes);
ValueType kRttSubtypes[] = {
ValueType::Rtt(static_cast<HeapType>(subtype_index), 2)};
FunctionSig sig_t2_v(1, 0, kRttSubtypes);
tester.DefineFunction("f", &sig_t_v, {},
{WASM_RTT_CANON(type_index), kExprEnd});
tester.DefineFunction(
"g", &sig_t2_v, {},
{WASM_RTT_CANON(type_index), WASM_RTT_SUB(subtype_index), kExprEnd});
tester.CompileModule();
@ -572,14 +564,6 @@ TEST(BasicRTT) {
CHECK_EQ(reinterpret_cast<Address>(
tester.instance()->module()->struct_type(type_index)),
map->wasm_type_info().foreign_address());
Handle<Object> subref_result = tester.GetJSResult("g", {}).ToHandleChecked();
CHECK(subref_result->IsMap());
Handle<Map> submap = Handle<Map>::cast(subref_result);
CHECK_EQ(*map, submap->wasm_type_info().parent());
CHECK_EQ(reinterpret_cast<Address>(
tester.instance()->module()->struct_type(subtype_index)),
submap->wasm_type_info().foreign_address());
}
} // namespace test_gc

View File

@ -459,8 +459,6 @@ inline WasmOpcode LoadStoreOpcodeOf(MachineType type, bool store) {
#define WASM_RTT_CANON(typeidx) \
WASM_GC_OP(kExprRttCanon), static_cast<byte>(typeidx)
#define WASM_RTT_SUB(typeidx) \
WASM_GC_OP(kExprRttSub), static_cast<byte>(typeidx)
#define WASM_BR_ON_NULL(depth, ref_object) \
ref_object, kExprBrOnNull, static_cast<byte>(depth)

View File

@ -32,124 +32,123 @@ INSTANCE_TYPES = {
68: "ABSTRACT_INTERNAL_CLASS_SUBCLASS1_TYPE",
69: "ABSTRACT_INTERNAL_CLASS_SUBCLASS2_TYPE",
70: "FOREIGN_TYPE",
71: "WASM_TYPE_INFO_TYPE",
72: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE",
73: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE",
74: "CALLABLE_TASK_TYPE",
75: "CALLBACK_TASK_TYPE",
76: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE",
77: "LOAD_HANDLER_TYPE",
78: "STORE_HANDLER_TYPE",
79: "FUNCTION_TEMPLATE_INFO_TYPE",
80: "OBJECT_TEMPLATE_INFO_TYPE",
81: "ACCESS_CHECK_INFO_TYPE",
82: "ACCESSOR_INFO_TYPE",
83: "ACCESSOR_PAIR_TYPE",
84: "ALIASED_ARGUMENTS_ENTRY_TYPE",
85: "ALLOCATION_MEMENTO_TYPE",
86: "ALLOCATION_SITE_TYPE",
87: "ARRAY_BOILERPLATE_DESCRIPTION_TYPE",
88: "ASM_WASM_DATA_TYPE",
89: "ASYNC_GENERATOR_REQUEST_TYPE",
90: "BREAK_POINT_TYPE",
91: "BREAK_POINT_INFO_TYPE",
92: "CACHED_TEMPLATE_OBJECT_TYPE",
93: "CALL_HANDLER_INFO_TYPE",
94: "CLASS_POSITIONS_TYPE",
95: "DEBUG_INFO_TYPE",
96: "ENUM_CACHE_TYPE",
97: "FEEDBACK_CELL_TYPE",
98: "FUNCTION_TEMPLATE_RARE_DATA_TYPE",
99: "INTERCEPTOR_INFO_TYPE",
100: "INTERPRETER_DATA_TYPE",
101: "PROMISE_CAPABILITY_TYPE",
102: "PROMISE_REACTION_TYPE",
103: "PROPERTY_DESCRIPTOR_OBJECT_TYPE",
104: "PROTOTYPE_INFO_TYPE",
105: "SCRIPT_TYPE",
106: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE",
107: "STACK_FRAME_INFO_TYPE",
108: "STACK_TRACE_FRAME_TYPE",
109: "TEMPLATE_OBJECT_DESCRIPTION_TYPE",
110: "TUPLE2_TYPE",
111: "WASM_CAPI_FUNCTION_DATA_TYPE",
112: "WASM_EXCEPTION_TAG_TYPE",
113: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
114: "WASM_INDIRECT_FUNCTION_TABLE_TYPE",
115: "WASM_JS_FUNCTION_DATA_TYPE",
116: "WASM_VALUE_TYPE",
117: "FIXED_ARRAY_TYPE",
118: "HASH_TABLE_TYPE",
119: "EPHEMERON_HASH_TABLE_TYPE",
120: "GLOBAL_DICTIONARY_TYPE",
121: "NAME_DICTIONARY_TYPE",
122: "NUMBER_DICTIONARY_TYPE",
123: "ORDERED_HASH_MAP_TYPE",
124: "ORDERED_HASH_SET_TYPE",
125: "ORDERED_NAME_DICTIONARY_TYPE",
126: "SIMPLE_NUMBER_DICTIONARY_TYPE",
127: "STRING_TABLE_TYPE",
128: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE",
129: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
130: "SCOPE_INFO_TYPE",
131: "SCRIPT_CONTEXT_TABLE_TYPE",
132: "BYTE_ARRAY_TYPE",
133: "BYTECODE_ARRAY_TYPE",
134: "FIXED_DOUBLE_ARRAY_TYPE",
135: "INTERNAL_CLASS_WITH_SMI_ELEMENTS_TYPE",
136: "SLOPPY_ARGUMENTS_ELEMENTS_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: "EXPORTED_SUB_CLASS_BASE_TYPE",
148: "EXPORTED_SUB_CLASS_TYPE",
149: "EXPORTED_SUB_CLASS2_TYPE",
150: "SMALL_ORDERED_HASH_MAP_TYPE",
151: "SMALL_ORDERED_HASH_SET_TYPE",
152: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
153: "SOURCE_TEXT_MODULE_TYPE",
154: "SYNTHETIC_MODULE_TYPE",
155: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE",
156: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE",
157: "WEAK_FIXED_ARRAY_TYPE",
158: "TRANSITION_ARRAY_TYPE",
159: "CELL_TYPE",
160: "CODE_TYPE",
161: "CODE_DATA_CONTAINER_TYPE",
162: "COVERAGE_INFO_TYPE",
163: "DESCRIPTOR_ARRAY_TYPE",
164: "EMBEDDER_DATA_ARRAY_TYPE",
165: "FEEDBACK_METADATA_TYPE",
166: "FEEDBACK_VECTOR_TYPE",
167: "FILLER_TYPE",
168: "FREE_SPACE_TYPE",
169: "INTERNAL_CLASS_TYPE",
170: "INTERNAL_CLASS_WITH_STRUCT_ELEMENTS_TYPE",
171: "MAP_TYPE",
172: "ON_HEAP_BASIC_BLOCK_PROFILER_DATA_TYPE",
173: "PREPARSE_DATA_TYPE",
174: "PROPERTY_ARRAY_TYPE",
175: "PROPERTY_CELL_TYPE",
176: "SHARED_FUNCTION_INFO_TYPE",
177: "SMI_BOX_TYPE",
178: "SMI_PAIR_TYPE",
179: "SORT_STATE_TYPE",
180: "WASM_ARRAY_TYPE",
181: "WASM_STRUCT_TYPE",
182: "WEAK_ARRAY_LIST_TYPE",
183: "WEAK_CELL_TYPE",
184: "JS_PROXY_TYPE",
71: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE",
72: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE",
73: "CALLABLE_TASK_TYPE",
74: "CALLBACK_TASK_TYPE",
75: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE",
76: "LOAD_HANDLER_TYPE",
77: "STORE_HANDLER_TYPE",
78: "FUNCTION_TEMPLATE_INFO_TYPE",
79: "OBJECT_TEMPLATE_INFO_TYPE",
80: "ACCESS_CHECK_INFO_TYPE",
81: "ACCESSOR_INFO_TYPE",
82: "ACCESSOR_PAIR_TYPE",
83: "ALIASED_ARGUMENTS_ENTRY_TYPE",
84: "ALLOCATION_MEMENTO_TYPE",
85: "ALLOCATION_SITE_TYPE",
86: "ARRAY_BOILERPLATE_DESCRIPTION_TYPE",
87: "ASM_WASM_DATA_TYPE",
88: "ASYNC_GENERATOR_REQUEST_TYPE",
89: "BREAK_POINT_TYPE",
90: "BREAK_POINT_INFO_TYPE",
91: "CACHED_TEMPLATE_OBJECT_TYPE",
92: "CALL_HANDLER_INFO_TYPE",
93: "CLASS_POSITIONS_TYPE",
94: "DEBUG_INFO_TYPE",
95: "ENUM_CACHE_TYPE",
96: "FEEDBACK_CELL_TYPE",
97: "FUNCTION_TEMPLATE_RARE_DATA_TYPE",
98: "INTERCEPTOR_INFO_TYPE",
99: "INTERPRETER_DATA_TYPE",
100: "PROMISE_CAPABILITY_TYPE",
101: "PROMISE_REACTION_TYPE",
102: "PROPERTY_DESCRIPTOR_OBJECT_TYPE",
103: "PROTOTYPE_INFO_TYPE",
104: "SCRIPT_TYPE",
105: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE",
106: "STACK_FRAME_INFO_TYPE",
107: "STACK_TRACE_FRAME_TYPE",
108: "TEMPLATE_OBJECT_DESCRIPTION_TYPE",
109: "TUPLE2_TYPE",
110: "WASM_CAPI_FUNCTION_DATA_TYPE",
111: "WASM_EXCEPTION_TAG_TYPE",
112: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
113: "WASM_INDIRECT_FUNCTION_TABLE_TYPE",
114: "WASM_JS_FUNCTION_DATA_TYPE",
115: "WASM_VALUE_TYPE",
116: "FIXED_ARRAY_TYPE",
117: "HASH_TABLE_TYPE",
118: "EPHEMERON_HASH_TABLE_TYPE",
119: "GLOBAL_DICTIONARY_TYPE",
120: "NAME_DICTIONARY_TYPE",
121: "NUMBER_DICTIONARY_TYPE",
122: "ORDERED_HASH_MAP_TYPE",
123: "ORDERED_HASH_SET_TYPE",
124: "ORDERED_NAME_DICTIONARY_TYPE",
125: "SIMPLE_NUMBER_DICTIONARY_TYPE",
126: "STRING_TABLE_TYPE",
127: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE",
128: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
129: "SCOPE_INFO_TYPE",
130: "SCRIPT_CONTEXT_TABLE_TYPE",
131: "BYTE_ARRAY_TYPE",
132: "BYTECODE_ARRAY_TYPE",
133: "FIXED_DOUBLE_ARRAY_TYPE",
134: "INTERNAL_CLASS_WITH_SMI_ELEMENTS_TYPE",
135: "SLOPPY_ARGUMENTS_ELEMENTS_TYPE",
136: "AWAIT_CONTEXT_TYPE",
137: "BLOCK_CONTEXT_TYPE",
138: "CATCH_CONTEXT_TYPE",
139: "DEBUG_EVALUATE_CONTEXT_TYPE",
140: "EVAL_CONTEXT_TYPE",
141: "FUNCTION_CONTEXT_TYPE",
142: "MODULE_CONTEXT_TYPE",
143: "NATIVE_CONTEXT_TYPE",
144: "SCRIPT_CONTEXT_TYPE",
145: "WITH_CONTEXT_TYPE",
146: "EXPORTED_SUB_CLASS_BASE_TYPE",
147: "EXPORTED_SUB_CLASS_TYPE",
148: "EXPORTED_SUB_CLASS2_TYPE",
149: "SMALL_ORDERED_HASH_MAP_TYPE",
150: "SMALL_ORDERED_HASH_SET_TYPE",
151: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
152: "SOURCE_TEXT_MODULE_TYPE",
153: "SYNTHETIC_MODULE_TYPE",
154: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE",
155: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE",
156: "WEAK_FIXED_ARRAY_TYPE",
157: "TRANSITION_ARRAY_TYPE",
158: "CELL_TYPE",
159: "CODE_TYPE",
160: "CODE_DATA_CONTAINER_TYPE",
161: "COVERAGE_INFO_TYPE",
162: "DESCRIPTOR_ARRAY_TYPE",
163: "EMBEDDER_DATA_ARRAY_TYPE",
164: "FEEDBACK_METADATA_TYPE",
165: "FEEDBACK_VECTOR_TYPE",
166: "FILLER_TYPE",
167: "FREE_SPACE_TYPE",
168: "INTERNAL_CLASS_TYPE",
169: "INTERNAL_CLASS_WITH_STRUCT_ELEMENTS_TYPE",
170: "MAP_TYPE",
171: "ON_HEAP_BASIC_BLOCK_PROFILER_DATA_TYPE",
172: "PREPARSE_DATA_TYPE",
173: "PROPERTY_ARRAY_TYPE",
174: "PROPERTY_CELL_TYPE",
175: "SHARED_FUNCTION_INFO_TYPE",
176: "SMI_BOX_TYPE",
177: "SMI_PAIR_TYPE",
178: "SORT_STATE_TYPE",
179: "WASM_ARRAY_TYPE",
180: "WASM_STRUCT_TYPE",
181: "WEAK_ARRAY_LIST_TYPE",
182: "WEAK_CELL_TYPE",
183: "JS_PROXY_TYPE",
1057: "JS_OBJECT_TYPE",
185: "JS_GLOBAL_OBJECT_TYPE",
186: "JS_GLOBAL_PROXY_TYPE",
187: "JS_MODULE_NAMESPACE_TYPE",
184: "JS_GLOBAL_OBJECT_TYPE",
185: "JS_GLOBAL_PROXY_TYPE",
186: "JS_MODULE_NAMESPACE_TYPE",
1040: "JS_SPECIAL_API_OBJECT_TYPE",
1041: "JS_PRIMITIVE_WRAPPER_TYPE",
1042: "JS_MAP_KEY_ITERATOR_TYPE",
@ -205,157 +204,156 @@ INSTANCE_TYPES = {
# List of known V8 maps.
KNOWN_MAPS = {
("read_only_space", 0x00121): (168, "FreeSpaceMap"),
("read_only_space", 0x00149): (171, "MetaMap"),
("read_only_space", 0x00121): (167, "FreeSpaceMap"),
("read_only_space", 0x00149): (170, "MetaMap"),
("read_only_space", 0x0018d): (67, "NullMap"),
("read_only_space", 0x001c5): (163, "DescriptorArrayMap"),
("read_only_space", 0x001f5): (157, "WeakFixedArrayMap"),
("read_only_space", 0x0021d): (167, "OnePointerFillerMap"),
("read_only_space", 0x00245): (167, "TwoPointerFillerMap"),
("read_only_space", 0x001c5): (162, "DescriptorArrayMap"),
("read_only_space", 0x001f5): (156, "WeakFixedArrayMap"),
("read_only_space", 0x0021d): (166, "OnePointerFillerMap"),
("read_only_space", 0x00245): (166, "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): (132, "ByteArrayMap"),
("read_only_space", 0x004b1): (117, "FixedArrayMap"),
("read_only_space", 0x004d9): (117, "FixedCOWArrayMap"),
("read_only_space", 0x00501): (118, "HashTableMap"),
("read_only_space", 0x00489): (131, "ByteArrayMap"),
("read_only_space", 0x004b1): (116, "FixedArrayMap"),
("read_only_space", 0x004d9): (116, "FixedCOWArrayMap"),
("read_only_space", 0x00501): (117, "HashTableMap"),
("read_only_space", 0x00529): (64, "SymbolMap"),
("read_only_space", 0x00551): (40, "OneByteStringMap"),
("read_only_space", 0x00579): (130, "ScopeInfoMap"),
("read_only_space", 0x005a1): (176, "SharedFunctionInfoMap"),
("read_only_space", 0x005c9): (160, "CodeMap"),
("read_only_space", 0x005f1): (159, "CellMap"),
("read_only_space", 0x00619): (175, "GlobalPropertyCellMap"),
("read_only_space", 0x00579): (129, "ScopeInfoMap"),
("read_only_space", 0x005a1): (175, "SharedFunctionInfoMap"),
("read_only_space", 0x005c9): (159, "CodeMap"),
("read_only_space", 0x005f1): (158, "CellMap"),
("read_only_space", 0x00619): (174, "GlobalPropertyCellMap"),
("read_only_space", 0x00641): (70, "ForeignMap"),
("read_only_space", 0x00669): (158, "TransitionArrayMap"),
("read_only_space", 0x00669): (157, "TransitionArrayMap"),
("read_only_space", 0x00691): (45, "ThinOneByteStringMap"),
("read_only_space", 0x006b9): (166, "FeedbackVectorMap"),
("read_only_space", 0x006b9): (165, "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): (131, "ScriptContextTableMap"),
("read_only_space", 0x008fd): (128, "ClosureFeedbackCellArrayMap"),
("read_only_space", 0x00925): (165, "FeedbackMetadataArrayMap"),
("read_only_space", 0x0094d): (117, "ArrayListMap"),
("read_only_space", 0x008d5): (130, "ScriptContextTableMap"),
("read_only_space", 0x008fd): (127, "ClosureFeedbackCellArrayMap"),
("read_only_space", 0x00925): (164, "FeedbackMetadataArrayMap"),
("read_only_space", 0x0094d): (116, "ArrayListMap"),
("read_only_space", 0x00975): (65, "BigIntMap"),
("read_only_space", 0x0099d): (129, "ObjectBoilerplateDescriptionMap"),
("read_only_space", 0x009c5): (133, "BytecodeArrayMap"),
("read_only_space", 0x009ed): (161, "CodeDataContainerMap"),
("read_only_space", 0x00a15): (162, "CoverageInfoMap"),
("read_only_space", 0x00a3d): (134, "FixedDoubleArrayMap"),
("read_only_space", 0x00a65): (120, "GlobalDictionaryMap"),
("read_only_space", 0x00a8d): (97, "ManyClosuresCellMap"),
("read_only_space", 0x00ab5): (117, "ModuleInfoMap"),
("read_only_space", 0x00add): (121, "NameDictionaryMap"),
("read_only_space", 0x00b05): (97, "NoClosuresCellMap"),
("read_only_space", 0x00b2d): (122, "NumberDictionaryMap"),
("read_only_space", 0x00b55): (97, "OneClosureCellMap"),
("read_only_space", 0x00b7d): (123, "OrderedHashMapMap"),
("read_only_space", 0x00ba5): (124, "OrderedHashSetMap"),
("read_only_space", 0x00bcd): (125, "OrderedNameDictionaryMap"),
("read_only_space", 0x00bf5): (173, "PreparseDataMap"),
("read_only_space", 0x00c1d): (174, "PropertyArrayMap"),
("read_only_space", 0x00c45): (93, "SideEffectCallHandlerInfoMap"),
("read_only_space", 0x00c6d): (93, "SideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x00c95): (93, "NextCallSideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x00cbd): (126, "SimpleNumberDictionaryMap"),
("read_only_space", 0x00ce5): (150, "SmallOrderedHashMapMap"),
("read_only_space", 0x00d0d): (151, "SmallOrderedHashSetMap"),
("read_only_space", 0x00d35): (152, "SmallOrderedNameDictionaryMap"),
("read_only_space", 0x00d5d): (153, "SourceTextModuleMap"),
("read_only_space", 0x00d85): (127, "StringTableMap"),
("read_only_space", 0x00dad): (154, "SyntheticModuleMap"),
("read_only_space", 0x00dd5): (156, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x00dfd): (155, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x00e25): (71, "WasmTypeInfoMap"),
("read_only_space", 0x00e4d): (182, "WeakArrayListMap"),
("read_only_space", 0x00e75): (119, "EphemeronHashTableMap"),
("read_only_space", 0x00e9d): (164, "EmbedderDataArrayMap"),
("read_only_space", 0x00ec5): (183, "WeakCellMap"),
("read_only_space", 0x00eed): (32, "StringMap"),
("read_only_space", 0x00f15): (41, "ConsOneByteStringMap"),
("read_only_space", 0x00f3d): (33, "ConsStringMap"),
("read_only_space", 0x00f65): (37, "ThinStringMap"),
("read_only_space", 0x00f8d): (35, "SlicedStringMap"),
("read_only_space", 0x00fb5): (43, "SlicedOneByteStringMap"),
("read_only_space", 0x00fdd): (34, "ExternalStringMap"),
("read_only_space", 0x01005): (42, "ExternalOneByteStringMap"),
("read_only_space", 0x0102d): (50, "UncachedExternalStringMap"),
("read_only_space", 0x01055): (0, "InternalizedStringMap"),
("read_only_space", 0x0107d): (2, "ExternalInternalizedStringMap"),
("read_only_space", 0x010a5): (10, "ExternalOneByteInternalizedStringMap"),
("read_only_space", 0x010cd): (18, "UncachedExternalInternalizedStringMap"),
("read_only_space", 0x010f5): (26, "UncachedExternalOneByteInternalizedStringMap"),
("read_only_space", 0x0111d): (58, "UncachedExternalOneByteStringMap"),
("read_only_space", 0x01145): (67, "SelfReferenceMarkerMap"),
("read_only_space", 0x0116d): (67, "BasicBlockCountersMarkerMap"),
("read_only_space", 0x011a1): (96, "EnumCacheMap"),
("read_only_space", 0x011f1): (87, "ArrayBoilerplateDescriptionMap"),
("read_only_space", 0x012dd): (99, "InterceptorInfoMap"),
("read_only_space", 0x03391): (72, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x033b9): (73, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x033e1): (74, "CallableTaskMap"),
("read_only_space", 0x03409): (75, "CallbackTaskMap"),
("read_only_space", 0x03431): (76, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x03459): (79, "FunctionTemplateInfoMap"),
("read_only_space", 0x03481): (80, "ObjectTemplateInfoMap"),
("read_only_space", 0x034a9): (81, "AccessCheckInfoMap"),
("read_only_space", 0x034d1): (82, "AccessorInfoMap"),
("read_only_space", 0x034f9): (83, "AccessorPairMap"),
("read_only_space", 0x03521): (84, "AliasedArgumentsEntryMap"),
("read_only_space", 0x03549): (85, "AllocationMementoMap"),
("read_only_space", 0x03571): (88, "AsmWasmDataMap"),
("read_only_space", 0x03599): (89, "AsyncGeneratorRequestMap"),
("read_only_space", 0x035c1): (90, "BreakPointMap"),
("read_only_space", 0x035e9): (91, "BreakPointInfoMap"),
("read_only_space", 0x03611): (92, "CachedTemplateObjectMap"),
("read_only_space", 0x03639): (94, "ClassPositionsMap"),
("read_only_space", 0x03661): (95, "DebugInfoMap"),
("read_only_space", 0x03689): (98, "FunctionTemplateRareDataMap"),
("read_only_space", 0x036b1): (100, "InterpreterDataMap"),
("read_only_space", 0x036d9): (101, "PromiseCapabilityMap"),
("read_only_space", 0x03701): (102, "PromiseReactionMap"),
("read_only_space", 0x03729): (103, "PropertyDescriptorObjectMap"),
("read_only_space", 0x03751): (104, "PrototypeInfoMap"),
("read_only_space", 0x03779): (105, "ScriptMap"),
("read_only_space", 0x037a1): (106, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x037c9): (107, "StackFrameInfoMap"),
("read_only_space", 0x037f1): (108, "StackTraceFrameMap"),
("read_only_space", 0x03819): (109, "TemplateObjectDescriptionMap"),
("read_only_space", 0x03841): (110, "Tuple2Map"),
("read_only_space", 0x03869): (111, "WasmCapiFunctionDataMap"),
("read_only_space", 0x03891): (112, "WasmExceptionTagMap"),
("read_only_space", 0x038b9): (113, "WasmExportedFunctionDataMap"),
("read_only_space", 0x038e1): (114, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x03909): (115, "WasmJSFunctionDataMap"),
("read_only_space", 0x03931): (116, "WasmValueMap"),
("read_only_space", 0x03959): (136, "SloppyArgumentsElementsMap"),
("read_only_space", 0x03981): (172, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x039a9): (169, "InternalClassMap"),
("read_only_space", 0x039d1): (178, "SmiPairMap"),
("read_only_space", 0x039f9): (177, "SmiBoxMap"),
("read_only_space", 0x03a21): (147, "ExportedSubClassBaseMap"),
("read_only_space", 0x03a49): (148, "ExportedSubClassMap"),
("read_only_space", 0x03a71): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x03a99): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x03ac1): (135, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x03ae9): (170, "InternalClassWithStructElementsMap"),
("read_only_space", 0x03b11): (149, "ExportedSubClass2Map"),
("read_only_space", 0x03b39): (179, "SortStateMap"),
("read_only_space", 0x03b61): (86, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x03b89): (86, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x03bb1): (77, "LoadHandler1Map"),
("read_only_space", 0x03bd9): (77, "LoadHandler2Map"),
("read_only_space", 0x03c01): (77, "LoadHandler3Map"),
("read_only_space", 0x03c29): (78, "StoreHandler0Map"),
("read_only_space", 0x03c51): (78, "StoreHandler1Map"),
("read_only_space", 0x03c79): (78, "StoreHandler2Map"),
("read_only_space", 0x03ca1): (78, "StoreHandler3Map"),
("read_only_space", 0x0099d): (128, "ObjectBoilerplateDescriptionMap"),
("read_only_space", 0x009c5): (132, "BytecodeArrayMap"),
("read_only_space", 0x009ed): (160, "CodeDataContainerMap"),
("read_only_space", 0x00a15): (161, "CoverageInfoMap"),
("read_only_space", 0x00a3d): (133, "FixedDoubleArrayMap"),
("read_only_space", 0x00a65): (119, "GlobalDictionaryMap"),
("read_only_space", 0x00a8d): (96, "ManyClosuresCellMap"),
("read_only_space", 0x00ab5): (116, "ModuleInfoMap"),
("read_only_space", 0x00add): (120, "NameDictionaryMap"),
("read_only_space", 0x00b05): (96, "NoClosuresCellMap"),
("read_only_space", 0x00b2d): (121, "NumberDictionaryMap"),
("read_only_space", 0x00b55): (96, "OneClosureCellMap"),
("read_only_space", 0x00b7d): (122, "OrderedHashMapMap"),
("read_only_space", 0x00ba5): (123, "OrderedHashSetMap"),
("read_only_space", 0x00bcd): (124, "OrderedNameDictionaryMap"),
("read_only_space", 0x00bf5): (172, "PreparseDataMap"),
("read_only_space", 0x00c1d): (173, "PropertyArrayMap"),
("read_only_space", 0x00c45): (92, "SideEffectCallHandlerInfoMap"),
("read_only_space", 0x00c6d): (92, "SideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x00c95): (92, "NextCallSideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x00cbd): (125, "SimpleNumberDictionaryMap"),
("read_only_space", 0x00ce5): (149, "SmallOrderedHashMapMap"),
("read_only_space", 0x00d0d): (150, "SmallOrderedHashSetMap"),
("read_only_space", 0x00d35): (151, "SmallOrderedNameDictionaryMap"),
("read_only_space", 0x00d5d): (152, "SourceTextModuleMap"),
("read_only_space", 0x00d85): (126, "StringTableMap"),
("read_only_space", 0x00dad): (153, "SyntheticModuleMap"),
("read_only_space", 0x00dd5): (155, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x00dfd): (154, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x00e25): (181, "WeakArrayListMap"),
("read_only_space", 0x00e4d): (118, "EphemeronHashTableMap"),
("read_only_space", 0x00e75): (163, "EmbedderDataArrayMap"),
("read_only_space", 0x00e9d): (182, "WeakCellMap"),
("read_only_space", 0x00ec5): (32, "StringMap"),
("read_only_space", 0x00eed): (41, "ConsOneByteStringMap"),
("read_only_space", 0x00f15): (33, "ConsStringMap"),
("read_only_space", 0x00f3d): (37, "ThinStringMap"),
("read_only_space", 0x00f65): (35, "SlicedStringMap"),
("read_only_space", 0x00f8d): (43, "SlicedOneByteStringMap"),
("read_only_space", 0x00fb5): (34, "ExternalStringMap"),
("read_only_space", 0x00fdd): (42, "ExternalOneByteStringMap"),
("read_only_space", 0x01005): (50, "UncachedExternalStringMap"),
("read_only_space", 0x0102d): (0, "InternalizedStringMap"),
("read_only_space", 0x01055): (2, "ExternalInternalizedStringMap"),
("read_only_space", 0x0107d): (10, "ExternalOneByteInternalizedStringMap"),
("read_only_space", 0x010a5): (18, "UncachedExternalInternalizedStringMap"),
("read_only_space", 0x010cd): (26, "UncachedExternalOneByteInternalizedStringMap"),
("read_only_space", 0x010f5): (58, "UncachedExternalOneByteStringMap"),
("read_only_space", 0x0111d): (67, "SelfReferenceMarkerMap"),
("read_only_space", 0x01145): (67, "BasicBlockCountersMarkerMap"),
("read_only_space", 0x01179): (95, "EnumCacheMap"),
("read_only_space", 0x011c9): (86, "ArrayBoilerplateDescriptionMap"),
("read_only_space", 0x012b5): (98, "InterceptorInfoMap"),
("read_only_space", 0x03369): (71, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x03391): (72, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x033b9): (73, "CallableTaskMap"),
("read_only_space", 0x033e1): (74, "CallbackTaskMap"),
("read_only_space", 0x03409): (75, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x03431): (78, "FunctionTemplateInfoMap"),
("read_only_space", 0x03459): (79, "ObjectTemplateInfoMap"),
("read_only_space", 0x03481): (80, "AccessCheckInfoMap"),
("read_only_space", 0x034a9): (81, "AccessorInfoMap"),
("read_only_space", 0x034d1): (82, "AccessorPairMap"),
("read_only_space", 0x034f9): (83, "AliasedArgumentsEntryMap"),
("read_only_space", 0x03521): (84, "AllocationMementoMap"),
("read_only_space", 0x03549): (87, "AsmWasmDataMap"),
("read_only_space", 0x03571): (88, "AsyncGeneratorRequestMap"),
("read_only_space", 0x03599): (89, "BreakPointMap"),
("read_only_space", 0x035c1): (90, "BreakPointInfoMap"),
("read_only_space", 0x035e9): (91, "CachedTemplateObjectMap"),
("read_only_space", 0x03611): (93, "ClassPositionsMap"),
("read_only_space", 0x03639): (94, "DebugInfoMap"),
("read_only_space", 0x03661): (97, "FunctionTemplateRareDataMap"),
("read_only_space", 0x03689): (99, "InterpreterDataMap"),
("read_only_space", 0x036b1): (100, "PromiseCapabilityMap"),
("read_only_space", 0x036d9): (101, "PromiseReactionMap"),
("read_only_space", 0x03701): (102, "PropertyDescriptorObjectMap"),
("read_only_space", 0x03729): (103, "PrototypeInfoMap"),
("read_only_space", 0x03751): (104, "ScriptMap"),
("read_only_space", 0x03779): (105, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x037a1): (106, "StackFrameInfoMap"),
("read_only_space", 0x037c9): (107, "StackTraceFrameMap"),
("read_only_space", 0x037f1): (108, "TemplateObjectDescriptionMap"),
("read_only_space", 0x03819): (109, "Tuple2Map"),
("read_only_space", 0x03841): (110, "WasmCapiFunctionDataMap"),
("read_only_space", 0x03869): (111, "WasmExceptionTagMap"),
("read_only_space", 0x03891): (112, "WasmExportedFunctionDataMap"),
("read_only_space", 0x038b9): (113, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x038e1): (114, "WasmJSFunctionDataMap"),
("read_only_space", 0x03909): (115, "WasmValueMap"),
("read_only_space", 0x03931): (135, "SloppyArgumentsElementsMap"),
("read_only_space", 0x03959): (171, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x03981): (168, "InternalClassMap"),
("read_only_space", 0x039a9): (177, "SmiPairMap"),
("read_only_space", 0x039d1): (176, "SmiBoxMap"),
("read_only_space", 0x039f9): (146, "ExportedSubClassBaseMap"),
("read_only_space", 0x03a21): (147, "ExportedSubClassMap"),
("read_only_space", 0x03a49): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x03a71): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x03a99): (134, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x03ac1): (169, "InternalClassWithStructElementsMap"),
("read_only_space", 0x03ae9): (148, "ExportedSubClass2Map"),
("read_only_space", 0x03b11): (178, "SortStateMap"),
("read_only_space", 0x03b39): (85, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x03b61): (85, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x03b89): (76, "LoadHandler1Map"),
("read_only_space", 0x03bb1): (76, "LoadHandler2Map"),
("read_only_space", 0x03bd9): (76, "LoadHandler3Map"),
("read_only_space", 0x03c01): (77, "StoreHandler0Map"),
("read_only_space", 0x03c29): (77, "StoreHandler1Map"),
("read_only_space", 0x03c51): (77, "StoreHandler2Map"),
("read_only_space", 0x03c79): (77, "StoreHandler3Map"),
("map_space", 0x00121): (1057, "ExternalMap"),
("map_space", 0x00149): (1072, "JSMessageObjectMap"),
}
@ -380,32 +378,32 @@ KNOWN_OBJECTS = {
("read_only_space", 0x007ad): "TerminationException",
("read_only_space", 0x00815): "OptimizedOut",
("read_only_space", 0x00875): "StaleRegister",
("read_only_space", 0x01195): "EmptyEnumCache",
("read_only_space", 0x011c9): "EmptyPropertyArray",
("read_only_space", 0x011d1): "EmptyByteArray",
("read_only_space", 0x011d9): "EmptyObjectBoilerplateDescription",
("read_only_space", 0x011e5): "EmptyArrayBoilerplateDescription",
("read_only_space", 0x01219): "EmptyClosureFeedbackCellArray",
("read_only_space", 0x01221): "EmptySlowElementDictionary",
("read_only_space", 0x01245): "EmptyOrderedHashMap",
("read_only_space", 0x01259): "EmptyOrderedHashSet",
("read_only_space", 0x0126d): "EmptyFeedbackMetadata",
("read_only_space", 0x01279): "EmptyPropertyCell",
("read_only_space", 0x0128d): "EmptyPropertyDictionary",
("read_only_space", 0x012b5): "NoOpInterceptorInfo",
("read_only_space", 0x01305): "EmptyWeakArrayList",
("read_only_space", 0x01311): "InfinityValue",
("read_only_space", 0x0131d): "MinusZeroValue",
("read_only_space", 0x01329): "MinusInfinityValue",
("read_only_space", 0x01335): "SelfReferenceMarker",
("read_only_space", 0x01375): "BasicBlockCountersMarker",
("read_only_space", 0x013b9): "OffHeapTrampolineRelocationInfo",
("read_only_space", 0x013c5): "TrampolineTrivialCodeDataContainer",
("read_only_space", 0x013d1): "TrampolinePromiseRejectionCodeDataContainer",
("read_only_space", 0x013dd): "GlobalThisBindingScopeInfo",
("read_only_space", 0x01415): "EmptyFunctionScopeInfo",
("read_only_space", 0x0143d): "NativeScopeInfo",
("read_only_space", 0x01459): "HashSeed",
("read_only_space", 0x0116d): "EmptyEnumCache",
("read_only_space", 0x011a1): "EmptyPropertyArray",
("read_only_space", 0x011a9): "EmptyByteArray",
("read_only_space", 0x011b1): "EmptyObjectBoilerplateDescription",
("read_only_space", 0x011bd): "EmptyArrayBoilerplateDescription",
("read_only_space", 0x011f1): "EmptyClosureFeedbackCellArray",
("read_only_space", 0x011f9): "EmptySlowElementDictionary",
("read_only_space", 0x0121d): "EmptyOrderedHashMap",
("read_only_space", 0x01231): "EmptyOrderedHashSet",
("read_only_space", 0x01245): "EmptyFeedbackMetadata",
("read_only_space", 0x01251): "EmptyPropertyCell",
("read_only_space", 0x01265): "EmptyPropertyDictionary",
("read_only_space", 0x0128d): "NoOpInterceptorInfo",
("read_only_space", 0x012dd): "EmptyWeakArrayList",
("read_only_space", 0x012e9): "InfinityValue",
("read_only_space", 0x012f5): "MinusZeroValue",
("read_only_space", 0x01301): "MinusInfinityValue",
("read_only_space", 0x0130d): "SelfReferenceMarker",
("read_only_space", 0x0134d): "BasicBlockCountersMarker",
("read_only_space", 0x01391): "OffHeapTrampolineRelocationInfo",
("read_only_space", 0x0139d): "TrampolineTrivialCodeDataContainer",
("read_only_space", 0x013a9): "TrampolinePromiseRejectionCodeDataContainer",
("read_only_space", 0x013b5): "GlobalThisBindingScopeInfo",
("read_only_space", 0x013ed): "EmptyFunctionScopeInfo",
("read_only_space", 0x01415): "NativeScopeInfo",
("read_only_space", 0x01431): "HashSeed",
("old_space", 0x00121): "ArgumentsIteratorAccessor",
("old_space", 0x00165): "ArrayLengthAccessor",
("old_space", 0x001a9): "BoundFunctionLengthAccessor",