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:
parent
ce9c43c307
commit
304565661b
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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_; }
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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(
|
||||
|
@ -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(
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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())
|
||||
|
||||
|
@ -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: \
|
||||
|
@ -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,
|
||||
|
@ -232,7 +232,6 @@ class ZoneForwardList;
|
||||
V(WasmMemoryObject) \
|
||||
V(WasmModuleObject) \
|
||||
V(WasmStruct) \
|
||||
V(WasmTypeInfo) \
|
||||
V(WasmTableObject) \
|
||||
V(WeakFixedArray) \
|
||||
V(WeakArrayList) \
|
||||
|
@ -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:
|
||||
|
@ -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(
|
||||
|
@ -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) \
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 {
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user