[inspector] Remove special wasm RemoteObject type.
Previously we had introduced a special `v8::internal::WasmValue` type which we used to expose Wasm values to the Scope view in Chromium DevTools. The problem however is that these values cannot be exposed to JavaScript (and in particular not to Debug Evaluate), which means that particularly for v128 and i64 we have inconsistent representations across the various parts of DevTools. This change removes the `wasm` type from the RemoteObject and all the adjacent logic, and paves the way for a uniform representation of Wasm values throughout DevTools. For i64 we will simply use BigInt consistently everywhere, and for i32, f32 and f64 we'll just use Number. For externref we will represent the values as-is directly. For v128 values we currently use a Uint8Array, but will introduce a dedicated WasmSimd128 class in a follow-up CL. Bug: chromium:1071432 Fixed: chromium:1159402 Change-Id: I0671e5736c9c27d7ca376e23ed74f16d36e03c80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614428 Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71962}
This commit is contained in:
parent
025443a4a8
commit
cde7a77e3a
@ -1008,8 +1008,7 @@ domain Runtime
|
||||
boolean
|
||||
symbol
|
||||
bigint
|
||||
wasm
|
||||
# Object subtype hint. Specified for `object` or `wasm` type values only.
|
||||
# Object subtype hint. Specified for `object` type values only.
|
||||
# NOTE: If you change anything here, make sure to also update
|
||||
# `subtype` in `ObjectPreview` and `PropertyPreview` below.
|
||||
optional enum subtype
|
||||
@ -1031,12 +1030,6 @@ domain Runtime
|
||||
arraybuffer
|
||||
dataview
|
||||
webassemblymemory
|
||||
i32
|
||||
i64
|
||||
f32
|
||||
f64
|
||||
v128
|
||||
externref
|
||||
# Object class (constructor) name. Specified for `object` type values only.
|
||||
optional string className
|
||||
# Remote object value in case of primitive values or JSON values (if it was requested).
|
||||
|
@ -3921,12 +3921,6 @@ void v8::debug::AccessorPair::CheckCast(Value* that) {
|
||||
"Value is not a debug::AccessorPair");
|
||||
}
|
||||
|
||||
void v8::debug::WasmValue::CheckCast(Value* that) {
|
||||
i::Handle<i::Object> obj = Utils::OpenHandle(that);
|
||||
Utils::ApiCheck(obj->IsWasmValue(), "v8::WasmValue::Cast",
|
||||
"Value is not a debug::WasmValue");
|
||||
}
|
||||
|
||||
v8::BackingStore::~BackingStore() {
|
||||
auto i_this = reinterpret_cast<const i::BackingStore*>(this);
|
||||
i_this->~BackingStore(); // manually call internal destructor
|
||||
@ -10689,52 +10683,6 @@ bool debug::AccessorPair::IsAccessorPair(Local<Value> that) {
|
||||
return obj->IsAccessorPair();
|
||||
}
|
||||
|
||||
int debug::WasmValue::value_type() {
|
||||
i::Handle<i::WasmValue> obj = Utils::OpenHandle(this);
|
||||
return obj->value_type();
|
||||
}
|
||||
|
||||
v8::Local<v8::Array> debug::WasmValue::bytes() {
|
||||
i::Handle<i::WasmValue> obj = Utils::OpenHandle(this);
|
||||
DCHECK(i::wasm::ValueType::Kind::kI32 == obj->value_type() ||
|
||||
i::wasm::ValueType::Kind::kI64 == obj->value_type() ||
|
||||
i::wasm::ValueType::Kind::kF32 == obj->value_type() ||
|
||||
i::wasm::ValueType::Kind::kF64 == obj->value_type() ||
|
||||
i::wasm::ValueType::Kind::kS128 == obj->value_type());
|
||||
|
||||
i::Isolate* isolate = obj->GetIsolate();
|
||||
i::Handle<i::Object> bytes_or_ref(obj->bytes_or_ref(), isolate);
|
||||
i::Handle<i::ByteArray> bytes(i::Handle<i::ByteArray>::cast(bytes_or_ref));
|
||||
|
||||
int length = bytes->length();
|
||||
|
||||
i::Handle<i::FixedArray> fa = isolate->factory()->NewFixedArray(length);
|
||||
i::Handle<i::JSArray> arr = obj->GetIsolate()->factory()->NewJSArray(
|
||||
i::PACKED_SMI_ELEMENTS, length, length);
|
||||
i::JSArray::SetContent(arr, fa);
|
||||
|
||||
for (int i = 0; i < length; i++) {
|
||||
fa->set(i, i::Smi::FromInt(bytes->get(i)));
|
||||
}
|
||||
|
||||
return Utils::ToLocal(arr);
|
||||
}
|
||||
|
||||
v8::Local<v8::Value> debug::WasmValue::ref() {
|
||||
i::Handle<i::WasmValue> obj = Utils::OpenHandle(this);
|
||||
DCHECK_EQ(i::wasm::HeapType::kExtern, obj->value_type());
|
||||
|
||||
i::Isolate* isolate = obj->GetIsolate();
|
||||
i::Handle<i::Object> bytes_or_ref(obj->bytes_or_ref(), isolate);
|
||||
|
||||
return Utils::ToLocal(bytes_or_ref);
|
||||
}
|
||||
|
||||
bool debug::WasmValue::IsWasmValue(Local<Value> that) {
|
||||
i::Handle<i::Object> obj = Utils::OpenHandle(*that);
|
||||
return obj->IsWasmValue();
|
||||
}
|
||||
|
||||
MaybeLocal<Message> debug::GetMessageFromPromise(Local<Promise> p) {
|
||||
i::Handle<i::JSPromise> promise = Utils::OpenHandle(*p);
|
||||
i::Isolate* isolate = promise->GetIsolate();
|
||||
|
@ -33,7 +33,6 @@ namespace debug {
|
||||
class AccessorPair;
|
||||
class GeneratorObject;
|
||||
class Script;
|
||||
class WasmValue;
|
||||
class WeakMap;
|
||||
} // namespace debug
|
||||
|
||||
@ -129,7 +128,6 @@ class RegisteredExtension {
|
||||
V(debug::Script, Script) \
|
||||
V(debug::WeakMap, JSWeakMap) \
|
||||
V(debug::AccessorPair, AccessorPair) \
|
||||
V(debug::WasmValue, WasmValue) \
|
||||
V(Promise, JSPromise) \
|
||||
V(Primitive, Object) \
|
||||
V(PrimitiveArray, FixedArray) \
|
||||
|
@ -611,23 +611,6 @@ class PropertyIterator {
|
||||
virtual bool is_array_index() = 0;
|
||||
};
|
||||
|
||||
// Wrapper around v8::internal::WasmValue.
|
||||
class V8_EXPORT_PRIVATE WasmValue : public v8::Value {
|
||||
public:
|
||||
WasmValue() = delete;
|
||||
static bool IsWasmValue(v8::Local<v8::Value> obj);
|
||||
V8_INLINE static WasmValue* Cast(v8::Value* obj);
|
||||
int value_type();
|
||||
// Get the underlying values as a byte array, this is only valid if value_type
|
||||
// is i32, i64, f32, f64, or s128.
|
||||
v8::Local<v8::Array> bytes();
|
||||
// Get the underlying externref, only valid if value_type is externref.
|
||||
v8::Local<v8::Value> ref();
|
||||
|
||||
private:
|
||||
static void CheckCast(v8::Value* obj);
|
||||
};
|
||||
|
||||
AccessorPair* AccessorPair::Cast(v8::Value* value) {
|
||||
#ifdef V8_ENABLE_CHECKS
|
||||
CheckCast(value);
|
||||
@ -635,13 +618,6 @@ AccessorPair* AccessorPair::Cast(v8::Value* value) {
|
||||
return static_cast<AccessorPair*>(value);
|
||||
}
|
||||
|
||||
WasmValue* WasmValue::Cast(v8::Value* value) {
|
||||
#ifdef V8_ENABLE_CHECKS
|
||||
CheckCast(value);
|
||||
#endif
|
||||
return static_cast<WasmValue*>(value);
|
||||
}
|
||||
|
||||
MaybeLocal<Message> GetMessageFromPromise(Local<Promise> promise);
|
||||
|
||||
} // namespace debug
|
||||
|
@ -2923,15 +2923,6 @@ Handle<DebugInfo> Factory::NewDebugInfo(Handle<SharedFunctionInfo> shared) {
|
||||
return debug_info;
|
||||
}
|
||||
|
||||
Handle<WasmValue> Factory::NewWasmValue(int value_type, Handle<Object> ref) {
|
||||
DCHECK(value_type == 6 || ref->IsByteArray());
|
||||
Handle<WasmValue> wasm_value =
|
||||
Handle<WasmValue>::cast(NewStruct(WASM_VALUE_TYPE, AllocationType::kOld));
|
||||
wasm_value->set_value_type(value_type);
|
||||
wasm_value->set_bytes_or_ref(*ref);
|
||||
return wasm_value;
|
||||
}
|
||||
|
||||
Handle<BreakPointInfo> Factory::NewBreakPointInfo(int source_position) {
|
||||
Handle<BreakPointInfo> new_break_point_info = Handle<BreakPointInfo>::cast(
|
||||
NewStruct(BREAK_POINT_INFO_TYPE, AllocationType::kOld));
|
||||
|
@ -725,8 +725,6 @@ class V8_EXPORT_PRIVATE Factory : public FactoryBase<Factory> {
|
||||
|
||||
Handle<DebugInfo> NewDebugInfo(Handle<SharedFunctionInfo> shared);
|
||||
|
||||
Handle<WasmValue> NewWasmValue(int32_t value_type, Handle<Object> ref);
|
||||
|
||||
// Return a map for given number of properties using the map cache in the
|
||||
// native context.
|
||||
Handle<Map> ObjectLiteralMapFromCache(Handle<NativeContext> native_context,
|
||||
|
@ -58,15 +58,6 @@ ResultType unpackWasmValue(v8::Local<v8::Context> context,
|
||||
return result;
|
||||
}
|
||||
|
||||
String16 descriptionForWasmS128(std::array<uint8_t, 16> arr) {
|
||||
String16Builder builder;
|
||||
for (int i = 0; i < 16; i++) {
|
||||
builder.appendUnsignedAsHex(arr.at(i));
|
||||
builder.append(" ");
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
// Partial list of Wasm's ValueType, copied here to avoid including internal
|
||||
// header. Using an unscoped enumeration here to allow implicit conversions from
|
||||
// int. Keep in sync with ValueType::Kind in wasm/value-type.h.
|
||||
@ -162,56 +153,6 @@ Response toProtocolValue(v8::Local<v8::Context> context,
|
||||
return Response::Success();
|
||||
}
|
||||
|
||||
if (v8::debug::WasmValue::IsWasmValue(value)) {
|
||||
auto wasmValue = value.As<v8::debug::WasmValue>();
|
||||
|
||||
// Convert serializable Wasm values (i32, f32, f64) into protocol values.
|
||||
// Not all i64 values are representable by double, so always represent it as
|
||||
// a String here.
|
||||
switch (wasmValue->value_type()) {
|
||||
case kI32: {
|
||||
*result = protocol::FundamentalValue::create(
|
||||
unpackWasmValue<int32_t>(context, wasmValue->bytes()));
|
||||
break;
|
||||
}
|
||||
case kI64: {
|
||||
*result = protocol::StringValue::create(String16::fromInteger64(
|
||||
unpackWasmValue<int64_t>(context, wasmValue->bytes())));
|
||||
break;
|
||||
}
|
||||
case kF32: {
|
||||
*result = protocol::FundamentalValue::create(
|
||||
unpackWasmValue<float>(context, wasmValue->bytes()));
|
||||
break;
|
||||
}
|
||||
case kF64: {
|
||||
*result = protocol::FundamentalValue::create(
|
||||
unpackWasmValue<double>(context, wasmValue->bytes()));
|
||||
break;
|
||||
}
|
||||
case kS128: {
|
||||
auto bytes = wasmValue->bytes();
|
||||
DCHECK_EQ(16, bytes->Length());
|
||||
auto s128 = unpackWasmValue<std::array<uint8_t, 16>>(context, bytes);
|
||||
String16 desc = descriptionForWasmS128(s128);
|
||||
*result = protocol::StringValue::create(desc);
|
||||
break;
|
||||
}
|
||||
case kExternRef: {
|
||||
std::unique_ptr<protocol::Value> externrefValue;
|
||||
Response response = toProtocolValue(context, wasmValue->ref(), maxDepth,
|
||||
&externrefValue);
|
||||
if (!response.IsSuccess()) return response;
|
||||
*result = std::move(externrefValue);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
UNIMPLEMENTED();
|
||||
}
|
||||
}
|
||||
return Response::Success();
|
||||
}
|
||||
|
||||
return Response::ServerError("Object couldn't be returned by value");
|
||||
}
|
||||
|
||||
@ -489,121 +430,6 @@ class PrimitiveValueMirror final : public ValueMirror {
|
||||
String16 m_subtype;
|
||||
};
|
||||
|
||||
class WasmValueMirror final : public ValueMirror {
|
||||
public:
|
||||
explicit WasmValueMirror(v8::Local<v8::debug::WasmValue> value)
|
||||
: m_value(value) {}
|
||||
|
||||
v8::Local<v8::Value> v8Value() const override { return m_value; }
|
||||
|
||||
Response buildRemoteObject(
|
||||
v8::Local<v8::Context> context, WrapMode mode,
|
||||
std::unique_ptr<RemoteObject>* result) const override {
|
||||
bool serializable;
|
||||
String16 descriptionValue = description(context, &serializable);
|
||||
*result = RemoteObject::create()
|
||||
.setType(RemoteObject::TypeEnum::Wasm)
|
||||
.setSubtype(subtype())
|
||||
.setDescription(descriptionValue)
|
||||
.build();
|
||||
if (serializable) {
|
||||
std::unique_ptr<protocol::Value> protocolValue;
|
||||
toProtocolValue(context, m_value, &protocolValue);
|
||||
(*result)->setValue(std::move(protocolValue));
|
||||
} else {
|
||||
(*result)->setUnserializableValue(descriptionValue);
|
||||
}
|
||||
return Response::Success();
|
||||
}
|
||||
|
||||
void buildPropertyPreview(
|
||||
v8::Local<v8::Context> context, const String16& name,
|
||||
std::unique_ptr<PropertyPreview>* result) const override {
|
||||
bool serializable;
|
||||
*result = PropertyPreview::create()
|
||||
.setName(name)
|
||||
.setType(RemoteObject::TypeEnum::Wasm)
|
||||
.setSubtype(subtype())
|
||||
.setValue(description(context, &serializable))
|
||||
.build();
|
||||
}
|
||||
|
||||
void buildEntryPreview(
|
||||
v8::Local<v8::Context> context, int* nameLimit, int* indexLimit,
|
||||
std::unique_ptr<ObjectPreview>* preview) const override {
|
||||
bool serializable;
|
||||
*preview =
|
||||
ObjectPreview::create()
|
||||
.setType(RemoteObject::TypeEnum::Wasm)
|
||||
.setSubtype(subtype())
|
||||
.setDescription(description(context, &serializable))
|
||||
.setOverflow(false)
|
||||
.setProperties(std::make_unique<protocol::Array<PropertyPreview>>())
|
||||
.build();
|
||||
}
|
||||
|
||||
private:
|
||||
String16 subtype() const {
|
||||
switch (m_value->value_type()) {
|
||||
case kI32:
|
||||
return RemoteObject::SubtypeEnum::I32;
|
||||
case kI64:
|
||||
return RemoteObject::SubtypeEnum::I64;
|
||||
case kF32:
|
||||
return RemoteObject::SubtypeEnum::F32;
|
||||
case kF64:
|
||||
return RemoteObject::SubtypeEnum::F64;
|
||||
case kS128:
|
||||
return RemoteObject::SubtypeEnum::V128;
|
||||
case kExternRef:
|
||||
return RemoteObject::SubtypeEnum::Externref;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
String16 description(v8::Local<v8::Context> context,
|
||||
bool* serializable) const {
|
||||
*serializable = true;
|
||||
switch (m_value->value_type()) {
|
||||
case kI32: {
|
||||
return String16::fromInteger(
|
||||
unpackWasmValue<int32_t>(context, m_value->bytes()));
|
||||
}
|
||||
case kI64: {
|
||||
*serializable = false;
|
||||
return String16::fromInteger64(
|
||||
unpackWasmValue<int64_t>(context, m_value->bytes()));
|
||||
}
|
||||
case kF32: {
|
||||
return String16::fromDouble(
|
||||
unpackWasmValue<float>(context, m_value->bytes()));
|
||||
}
|
||||
case kF64: {
|
||||
return String16::fromDouble(
|
||||
unpackWasmValue<double>(context, m_value->bytes()));
|
||||
}
|
||||
case kS128: {
|
||||
*serializable = false;
|
||||
auto bytes = m_value->bytes();
|
||||
DCHECK_EQ(16, bytes->Length());
|
||||
auto s128 = unpackWasmValue<std::array<uint8_t, 16>>(context, bytes);
|
||||
return descriptionForWasmS128(s128);
|
||||
}
|
||||
case kExternRef: {
|
||||
return descriptionForObject(context->GetIsolate(),
|
||||
m_value->ref().As<v8::Object>());
|
||||
}
|
||||
default: {
|
||||
*serializable = false;
|
||||
return String16("Unknown");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
v8::Local<v8::debug::WasmValue> m_value;
|
||||
};
|
||||
|
||||
class NumberMirror final : public ValueMirror {
|
||||
public:
|
||||
explicit NumberMirror(v8::Local<v8::Number> value) : m_value(value) {}
|
||||
@ -1766,9 +1592,6 @@ std::unique_ptr<ValueMirror> ValueMirror::create(v8::Local<v8::Context> context,
|
||||
if (value->IsSymbol()) {
|
||||
return std::make_unique<SymbolMirror>(value.As<v8::Symbol>());
|
||||
}
|
||||
if (v8::debug::WasmValue::IsWasmValue(value)) {
|
||||
return std::make_unique<WasmValueMirror>(value.As<v8::debug::WasmValue>());
|
||||
}
|
||||
auto clientSubtype = (value->IsUndefined() || value->IsObject())
|
||||
? clientFor(context)->valueSubtype(value)
|
||||
: nullptr;
|
||||
|
@ -58,9 +58,6 @@ BytecodeArray DebugInfo::DebugBytecodeArray() {
|
||||
return BytecodeArray::cast(debug_bytecode_array(kAcquireLoad));
|
||||
}
|
||||
|
||||
TQ_OBJECT_CONSTRUCTORS_IMPL(WasmValue)
|
||||
NEVER_READ_ONLY_SPACE_IMPL(WasmValue)
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
|
@ -203,14 +203,6 @@ class BreakPoint : public TorqueGeneratedBreakPoint<BreakPoint, Struct> {
|
||||
TQ_OBJECT_CONSTRUCTORS(BreakPoint)
|
||||
};
|
||||
|
||||
// Holds Wasm values. This is used by the inspector.
|
||||
class WasmValue : public TorqueGeneratedWasmValue<WasmValue, Struct> {
|
||||
public:
|
||||
NEVER_READ_ONLY_SPACE
|
||||
|
||||
TQ_OBJECT_CONSTRUCTORS(WasmValue)
|
||||
};
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
|
@ -70,17 +70,3 @@ extern class CoverageInfo extends HeapObject {
|
||||
const slot_count: int32;
|
||||
slots[slot_count]: CoverageInfoSlot;
|
||||
}
|
||||
|
||||
@generateCppClass
|
||||
@generatePrint
|
||||
extern class WasmValue extends Struct {
|
||||
// TODO(7748): Name and comment are outdated.
|
||||
// The type, should map to ValueType::Kind values in value-type.h.
|
||||
value_type: SmiTagged<WasmValueType>;
|
||||
// Holds the actual value. For example, if this holds a Wasm i32, this will
|
||||
// be of length 4, for s128, it will have length 16. These values are
|
||||
// represented by the respective C++ types, and memcpy-ed in.
|
||||
// When value_type is a externref, it holds the object that externref points
|
||||
// to.
|
||||
bytes_or_ref: Object|ByteArray;
|
||||
}
|
||||
|
@ -154,8 +154,7 @@ namespace internal {
|
||||
wasm_exported_function_data) \
|
||||
V(_, WASM_INDIRECT_FUNCTION_TABLE_TYPE, WasmIndirectFunctionTable, \
|
||||
wasm_indirect_function_table) \
|
||||
V(_, WASM_JS_FUNCTION_DATA_TYPE, WasmJSFunctionData, wasm_js_function_data) \
|
||||
V(_, WASM_VALUE_TYPE, WasmValue, wasm_value)
|
||||
V(_, WASM_JS_FUNCTION_DATA_TYPE, WasmJSFunctionData, wasm_js_function_data)
|
||||
|
||||
#define STRUCT_LIST_GENERATOR(V, _) STRUCT_LIST_GENERATOR_BASE(V, _)
|
||||
|
||||
|
@ -182,7 +182,6 @@
|
||||
// - SourceTextModule
|
||||
// - SyntheticModule
|
||||
// - SourceTextModuleInfoEntry
|
||||
// - WasmValue
|
||||
// - FeedbackCell
|
||||
// - FeedbackVector
|
||||
// - PreparseData
|
||||
|
@ -55,55 +55,43 @@ Handle<String> PrintFToOneByteString(Isolate* isolate, const char* format,
|
||||
: isolate->factory()->NewStringFromOneByte(name).ToHandleChecked();
|
||||
}
|
||||
|
||||
Handle<Object> WasmValueToValueObject(Isolate* isolate, WasmValue value) {
|
||||
Handle<ByteArray> bytes;
|
||||
// Convert a WasmValue to an appropriate JS representation.
|
||||
Handle<Object> WasmValueToObject(Isolate* isolate, wasm::WasmValue value) {
|
||||
auto* factory = isolate->factory();
|
||||
switch (value.type().kind()) {
|
||||
case ValueType::kI32: {
|
||||
int32_t val = value.to_i32();
|
||||
bytes = isolate->factory()->NewByteArray(sizeof(val));
|
||||
base::Memcpy(bytes->GetDataStartAddress(), &val, sizeof(val));
|
||||
break;
|
||||
}
|
||||
case ValueType::kI64: {
|
||||
int64_t val = value.to_i64();
|
||||
bytes = isolate->factory()->NewByteArray(sizeof(val));
|
||||
base::Memcpy(bytes->GetDataStartAddress(), &val, sizeof(val));
|
||||
break;
|
||||
}
|
||||
case ValueType::kF32: {
|
||||
float val = value.to_f32();
|
||||
bytes = isolate->factory()->NewByteArray(sizeof(val));
|
||||
base::Memcpy(bytes->GetDataStartAddress(), &val, sizeof(val));
|
||||
break;
|
||||
}
|
||||
case ValueType::kF64: {
|
||||
double val = value.to_f64();
|
||||
bytes = isolate->factory()->NewByteArray(sizeof(val));
|
||||
base::Memcpy(bytes->GetDataStartAddress(), &val, sizeof(val));
|
||||
break;
|
||||
}
|
||||
case ValueType::kS128: {
|
||||
Simd128 s128 = value.to_s128();
|
||||
bytes = isolate->factory()->NewByteArray(kSimd128Size);
|
||||
base::Memcpy(bytes->GetDataStartAddress(), s128.bytes(), kSimd128Size);
|
||||
break;
|
||||
}
|
||||
case ValueType::kOptRef: {
|
||||
if (value.type().is_reference_to(HeapType::kExtern)) {
|
||||
return isolate->factory()->NewWasmValue(
|
||||
static_cast<int32_t>(HeapType::kExtern), value.to_externref());
|
||||
} else {
|
||||
// TODO(7748): Implement.
|
||||
UNIMPLEMENTED();
|
||||
case wasm::ValueType::kI32:
|
||||
return factory->NewNumberFromInt(value.to_i32());
|
||||
case wasm::ValueType::kI64:
|
||||
return BigInt::FromInt64(isolate, value.to_i64());
|
||||
case wasm::ValueType::kF32:
|
||||
return factory->NewNumber(value.to_f32());
|
||||
case wasm::ValueType::kF64:
|
||||
return factory->NewNumber(value.to_f64());
|
||||
case wasm::ValueType::kS128: {
|
||||
wasm::Simd128 s128 = value.to_s128();
|
||||
Handle<JSArrayBuffer> buffer;
|
||||
if (!factory
|
||||
->NewJSArrayBufferAndBackingStore(
|
||||
kSimd128Size, InitializedFlag::kUninitialized)
|
||||
.ToHandle(&buffer)) {
|
||||
isolate->FatalProcessOutOfHeapMemory(
|
||||
"failed to allocate backing store");
|
||||
}
|
||||
|
||||
base::Memcpy(buffer->allocation_base(), s128.bytes(),
|
||||
buffer->byte_length());
|
||||
auto array = factory->NewJSTypedArray(kExternalUint8Array, buffer, 0,
|
||||
kSimd128Size);
|
||||
JSObject::SetPrototype(array, factory->null_value(), false, kDontThrow)
|
||||
.Check();
|
||||
return array;
|
||||
}
|
||||
default: {
|
||||
// TODO(7748): Implement.
|
||||
UNIMPLEMENTED();
|
||||
}
|
||||
case wasm::ValueType::kRef:
|
||||
return value.to_externref();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return isolate->factory()->NewWasmValue(
|
||||
static_cast<int32_t>(value.type().kind()), bytes);
|
||||
return factory->undefined_value();
|
||||
}
|
||||
|
||||
MaybeHandle<String> GetLocalNameString(Isolate* isolate,
|
||||
@ -243,7 +231,7 @@ Handle<JSObject> GetModuleScopeObject(Handle<WasmInstanceObject> instance) {
|
||||
}
|
||||
WasmValue value =
|
||||
WasmInstanceObject::GetGlobalValue(instance, globals[i]);
|
||||
Handle<Object> value_obj = WasmValueToValueObject(isolate, value);
|
||||
Handle<Object> value_obj = WasmValueToObject(isolate, value);
|
||||
LookupIterator it(isolate, globals_obj, name, globals_obj,
|
||||
LookupIterator::OWN_SKIP_INTERCEPTOR);
|
||||
JSObject::CreateDataProperty(&it, value_obj).Check();
|
||||
@ -318,7 +306,7 @@ class DebugInfoImpl {
|
||||
}
|
||||
WasmValue value =
|
||||
GetValue(scope.debug_side_table_entry, i, fp, debug_break_fp);
|
||||
Handle<Object> value_obj = WasmValueToValueObject(isolate, value);
|
||||
Handle<Object> value_obj = WasmValueToObject(isolate, value);
|
||||
// {name} can be a string representation of an element index.
|
||||
LookupIterator::Key lookup_key{isolate, name};
|
||||
LookupIterator it(isolate, local_scope_object, lookup_key,
|
||||
@ -350,7 +338,7 @@ class DebugInfoImpl {
|
||||
for (int i = num_locals; i < value_count; ++i) {
|
||||
WasmValue value =
|
||||
GetValue(scope.debug_side_table_entry, i, fp, debug_break_fp);
|
||||
Handle<Object> value_obj = WasmValueToValueObject(isolate, value);
|
||||
Handle<Object> value_obj = WasmValueToObject(isolate, value);
|
||||
JSObject::AddDataElement(stack_scope_obj,
|
||||
static_cast<uint32_t>(i - num_locals), value_obj,
|
||||
NONE);
|
||||
@ -1514,43 +1502,6 @@ Address GetCalleeFP(Isolate* isolate, Handle<JSObject> handler) {
|
||||
return Handle<BigInt>::cast(callee_fp)->AsUint64();
|
||||
}
|
||||
|
||||
// Convert a WasmValue to an appropriate JS representation.
|
||||
static Handle<Object> WasmValueToObject(Isolate* isolate,
|
||||
wasm::WasmValue value) {
|
||||
auto* factory = isolate->factory();
|
||||
switch (value.type().kind()) {
|
||||
case wasm::ValueType::kI32:
|
||||
return factory->NewNumberFromInt(value.to_i32());
|
||||
case wasm::ValueType::kI64:
|
||||
return BigInt::FromInt64(isolate, value.to_i64());
|
||||
case wasm::ValueType::kF32:
|
||||
return factory->NewNumber(value.to_f32());
|
||||
case wasm::ValueType::kF64:
|
||||
return factory->NewNumber(value.to_f64());
|
||||
case wasm::ValueType::kS128: {
|
||||
wasm::Simd128 s128 = value.to_s128();
|
||||
Handle<JSArrayBuffer> buffer;
|
||||
if (!isolate->factory()
|
||||
->NewJSArrayBufferAndBackingStore(
|
||||
kSimd128Size, InitializedFlag::kUninitialized)
|
||||
.ToHandle(&buffer)) {
|
||||
isolate->FatalProcessOutOfHeapMemory(
|
||||
"failed to allocate backing store");
|
||||
}
|
||||
|
||||
base::Memcpy(buffer->allocation_base(), s128.bytes(),
|
||||
buffer->byte_length());
|
||||
return isolate->factory()->NewJSTypedArray(kExternalUint8Array, buffer, 0,
|
||||
buffer->byte_length());
|
||||
}
|
||||
case wasm::ValueType::kRef:
|
||||
return value.to_externref();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return factory->undefined_value();
|
||||
}
|
||||
|
||||
base::Optional<int> HasLocalImpl(Isolate* isolate, Handle<Name> property,
|
||||
Handle<JSObject> handler,
|
||||
bool enable_index_lookup) {
|
||||
|
@ -30,26 +30,26 @@ Testing i64.
|
||||
Waiting for wasm script.
|
||||
Setting 20 breakpoints.
|
||||
Calling main.
|
||||
Paused at offset 48; wasm-expression-stack: []; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 50; wasm-expression-stack: [0]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 52; wasm-expression-stack: [0, 1]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 54; wasm-expression-stack: [0, 1, 2]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 56; wasm-expression-stack: [0, 1, 2, 3]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 58; wasm-expression-stack: [0, 1, 2, 3, 4]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 60; wasm-expression-stack: [0, 1, 2, 3, 4, 5]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 62; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 6]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 64; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 6, 7]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 66; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 6, 7, 8]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 68; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 69; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 6, 7, 17]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 70; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 6, 24]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 71; wasm-expression-stack: [0, 1, 2, 3, 4, 5, 30]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 72; wasm-expression-stack: [0, 1, 2, 3, 4, 35]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 73; wasm-expression-stack: [0, 1, 2, 3, 39]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 74; wasm-expression-stack: [0, 1, 2, 42]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 75; wasm-expression-stack: [0, 1, 44]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 76; wasm-expression-stack: [0, 45]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 77; wasm-expression-stack: [45]; local: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
Paused at offset 48; wasm-expression-stack: []; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 50; wasm-expression-stack: [0n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 52; wasm-expression-stack: [0n, 1n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 54; wasm-expression-stack: [0n, 1n, 2n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 56; wasm-expression-stack: [0n, 1n, 2n, 3n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 58; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 60; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 62; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 6n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 64; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 66; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 68; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 69; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 17n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 70; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 24n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 71; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 5n, 30n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 72; wasm-expression-stack: [0n, 1n, 2n, 3n, 4n, 35n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 73; wasm-expression-stack: [0n, 1n, 2n, 3n, 39n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 74; wasm-expression-stack: [0n, 1n, 2n, 42n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 75; wasm-expression-stack: [0n, 1n, 44n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 76; wasm-expression-stack: [0n, 45n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
Paused at offset 77; wasm-expression-stack: [45n]; local: [0n, 1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n, 9n]
|
||||
main returned.
|
||||
Testing f32.
|
||||
Waiting for wasm script.
|
||||
|
@ -16,39 +16,39 @@ Scope:
|
||||
at C (interpreted) (0:169):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
var2: 0 (f32)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
var2: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 0 (i32)
|
||||
globals: "exported_global": 0 (number)
|
||||
at B (liftoff) (0:158):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
1: 3 (i32)
|
||||
0: 42 (number)
|
||||
1: 3 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 0 (i32)
|
||||
globals: "exported_global": 0 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 0 (i32)
|
||||
globals: "exported_global": 0 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -58,41 +58,41 @@ Script wasm://wasm/e33badc2 byte offset 171: Wasm opcode 0x24 (kExprGlobalSet)
|
||||
Scope:
|
||||
at C (interpreted) (0:171):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
0: 42 (number)
|
||||
- scope (local):
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
var2: 0 (f32)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
var2: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 0 (i32)
|
||||
globals: "exported_global": 0 (number)
|
||||
at B (liftoff) (0:158):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
1: 3 (i32)
|
||||
0: 42 (number)
|
||||
1: 3 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 0 (i32)
|
||||
globals: "exported_global": 0 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 0 (i32)
|
||||
globals: "exported_global": 0 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -103,39 +103,39 @@ Scope:
|
||||
at C (interpreted) (0:173):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
var2: 0 (f32)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
var2: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at B (liftoff) (0:158):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
1: 3 (i32)
|
||||
0: 42 (number)
|
||||
1: 3 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -145,41 +145,41 @@ Script wasm://wasm/e33badc2 byte offset 175: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at C (interpreted) (0:175):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 47 (i32)
|
||||
0: 47 (number)
|
||||
- scope (local):
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
var2: 0 (f32)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
var2: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at B (liftoff) (0:158):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
1: 3 (i32)
|
||||
0: 42 (number)
|
||||
1: 3 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -190,39 +190,39 @@ Scope:
|
||||
at C (interpreted) (0:177):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 47 (i32)
|
||||
var2: 0 (f32)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 47 (number)
|
||||
var2: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at B (liftoff) (0:158):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
1: 3 (i32)
|
||||
0: 42 (number)
|
||||
1: 3 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -232,29 +232,29 @@ Script wasm://wasm/e33badc2 byte offset 160: Wasm opcode 0x1a (kExprDrop)
|
||||
Scope:
|
||||
at B (liftoff) (0:160):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
1: 3 (i32)
|
||||
0: 42 (number)
|
||||
1: 3 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -264,28 +264,28 @@ Script wasm://wasm/e33badc2 byte offset 161: Wasm opcode 0x1a (kExprDrop)
|
||||
Scope:
|
||||
at B (liftoff) (0:161):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 42 (i32)
|
||||
0: 42 (number)
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -296,26 +296,26 @@ Scope:
|
||||
at B (liftoff) (0:162):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
0: 0 (f32)
|
||||
i32_arg: 42 (i32)
|
||||
i32_local: 0 (i32)
|
||||
f32_local: 7.199999809265137 (f32)
|
||||
var5: 0 (f32)
|
||||
v128_local: 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 (v128)
|
||||
0: 0 (number)
|
||||
i32_arg: 42 (number)
|
||||
i32_local: 0 (number)
|
||||
f32_local: 7.199999809265137 (number)
|
||||
var5: 0 (number)
|
||||
v128_local: Uint8Array(16)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at A (liftoff) (0:128):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
@ -326,12 +326,12 @@ Scope:
|
||||
at A (liftoff) (0:130):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 42 (i32)
|
||||
var0: 42 (number)
|
||||
- scope (module):
|
||||
instance: exports: "exported_global" (Global), "exported_memory" (Memory), "exported_table" (Table), "main" (Function)
|
||||
module: Module
|
||||
exported_memory: Memory(1)
|
||||
globals: "exported_global": 42 (i32)
|
||||
globals: "exported_global": 42 (number)
|
||||
at (anonymous) (0:17):
|
||||
- scope (global):
|
||||
-- skipped globals
|
||||
|
@ -17,7 +17,7 @@ at wasm_A (0:38):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -44,7 +44,7 @@ at wasm_A (0:39):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -56,7 +56,7 @@ Scope:
|
||||
at wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -67,9 +67,9 @@ Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 3 (i32)
|
||||
0: 3 (number)
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -81,7 +81,7 @@ Scope:
|
||||
at wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -92,9 +92,9 @@ Script wasm://wasm/0c10a5fe byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 3 (i32)
|
||||
0: 3 (number)
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -105,10 +105,10 @@ Script wasm://wasm/0c10a5fe byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Scope:
|
||||
at wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 3 (i32)
|
||||
1: 1 (i32)
|
||||
0: 3 (number)
|
||||
1: 1 (number)
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -119,9 +119,9 @@ Script wasm://wasm/0c10a5fe byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 2 (i32)
|
||||
0: 2 (number)
|
||||
- scope (local):
|
||||
var0: 3 (i32)
|
||||
var0: 3 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -139,7 +139,7 @@ at wasm_A (0:38):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -157,7 +157,7 @@ at wasm_A (0:39):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -169,7 +169,7 @@ Scope:
|
||||
at wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -180,9 +180,9 @@ Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 2 (i32)
|
||||
0: 2 (number)
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -194,7 +194,7 @@ Scope:
|
||||
at wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -205,9 +205,9 @@ Script wasm://wasm/0c10a5fe byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 2 (i32)
|
||||
0: 2 (number)
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -218,10 +218,10 @@ Script wasm://wasm/0c10a5fe byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Scope:
|
||||
at wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 2 (i32)
|
||||
1: 1 (i32)
|
||||
0: 2 (number)
|
||||
1: 1 (number)
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -232,9 +232,9 @@ Script wasm://wasm/0c10a5fe byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
0: 1 (number)
|
||||
- scope (local):
|
||||
var0: 2 (i32)
|
||||
var0: 2 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -252,7 +252,7 @@ at wasm_A (0:38):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -270,7 +270,7 @@ at wasm_A (0:39):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -282,7 +282,7 @@ Scope:
|
||||
at wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -293,9 +293,9 @@ Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
0: 1 (number)
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -307,7 +307,7 @@ Scope:
|
||||
at wasm_B (0:49):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -318,9 +318,9 @@ Script wasm://wasm/0c10a5fe byte offset 51: Wasm opcode 0x41 (kExprI32Const)
|
||||
Scope:
|
||||
at wasm_B (0:51):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
0: 1 (number)
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -331,10 +331,10 @@ Script wasm://wasm/0c10a5fe byte offset 53: Wasm opcode 0x6b (kExprI32Sub)
|
||||
Scope:
|
||||
at wasm_B (0:53):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 1 (i32)
|
||||
1: 1 (i32)
|
||||
0: 1 (number)
|
||||
1: 1 (number)
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -345,9 +345,9 @@ Script wasm://wasm/0c10a5fe byte offset 54: Wasm opcode 0x21 (kExprLocalSet)
|
||||
Scope:
|
||||
at wasm_B (0:54):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 0 (i32)
|
||||
0: 0 (number)
|
||||
- scope (local):
|
||||
var0: 1 (i32)
|
||||
var0: 1 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -365,7 +365,7 @@ at wasm_A (0:38):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 0 (i32)
|
||||
var0: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -383,7 +383,7 @@ at wasm_A (0:39):
|
||||
at wasm_B (0:56):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 0 (i32)
|
||||
var0: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -395,7 +395,7 @@ Scope:
|
||||
at wasm_B (0:45):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 0 (i32)
|
||||
var0: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -406,9 +406,9 @@ Script wasm://wasm/0c10a5fe byte offset 47: Wasm opcode 0x04 (kExprIf)
|
||||
Scope:
|
||||
at wasm_B (0:47):
|
||||
- scope (wasm-expression-stack):
|
||||
0: 0 (i32)
|
||||
0: 0 (number)
|
||||
- scope (local):
|
||||
var0: 0 (i32)
|
||||
var0: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
@ -420,7 +420,7 @@ Scope:
|
||||
at wasm_B (0:61):
|
||||
- scope (wasm-expression-stack):
|
||||
- scope (local):
|
||||
var0: 0 (i32)
|
||||
var0: 0 (number)
|
||||
- scope (module):
|
||||
instance: exports: "main" (Function)
|
||||
module: Module
|
||||
|
@ -35,10 +35,8 @@ WasmInspectorTest.dumpScopeProperties = async function(message) {
|
||||
}
|
||||
}
|
||||
|
||||
WasmInspectorTest.getWasmValue = function(wasmValue) {
|
||||
return typeof (wasmValue.value) === 'undefined' ?
|
||||
wasmValue.unserializableValue :
|
||||
wasmValue.value;
|
||||
WasmInspectorTest.getWasmValue = value => {
|
||||
return value.unserializableValue ?? value.value;
|
||||
}
|
||||
|
||||
function printIfFailure(message) {
|
||||
@ -56,13 +54,12 @@ async function getScopeValues(name, value) {
|
||||
|
||||
let msg = await Protocol.Runtime.getProperties({objectId: value.objectId});
|
||||
printIfFailure(msg);
|
||||
const printProperty = function(elem) {
|
||||
const wasmValue = WasmInspectorTest.getWasmValue(elem.value);
|
||||
return `"${elem.name}": ${wasmValue} (${elem.value.subtype})`;
|
||||
const printProperty = function({name, value}) {
|
||||
return `"${name}": ${WasmInspectorTest.getWasmValue(value)} (${value.subtype ?? value.type})`;
|
||||
}
|
||||
return msg.result.result.map(printProperty).join(', ');
|
||||
}
|
||||
return WasmInspectorTest.getWasmValue(value) + ' (' + value.subtype + ')';
|
||||
return `${WasmInspectorTest.getWasmValue(value)} (${value.subtype ?? value.type})`;
|
||||
}
|
||||
|
||||
function recursiveGetPropertiesWrapper(value, depth) {
|
||||
|
@ -77,80 +77,79 @@ INSTANCE_TYPES = {
|
||||
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: "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: "DESCRIPTOR_ARRAY_TYPE",
|
||||
153: "STRONG_DESCRIPTOR_ARRAY_TYPE",
|
||||
154: "SOURCE_TEXT_MODULE_TYPE",
|
||||
155: "SYNTHETIC_MODULE_TYPE",
|
||||
156: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE",
|
||||
157: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE",
|
||||
158: "WEAK_FIXED_ARRAY_TYPE",
|
||||
159: "TRANSITION_ARRAY_TYPE",
|
||||
160: "CELL_TYPE",
|
||||
161: "CODE_TYPE",
|
||||
162: "CODE_DATA_CONTAINER_TYPE",
|
||||
163: "COVERAGE_INFO_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_CAPI_FUNCTION_DATA_TYPE",
|
||||
182: "WASM_STRUCT_TYPE",
|
||||
183: "WEAK_ARRAY_LIST_TYPE",
|
||||
184: "WEAK_CELL_TYPE",
|
||||
185: "JS_PROXY_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: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE",
|
||||
127: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
|
||||
128: "SCOPE_INFO_TYPE",
|
||||
129: "SCRIPT_CONTEXT_TABLE_TYPE",
|
||||
130: "BYTE_ARRAY_TYPE",
|
||||
131: "BYTECODE_ARRAY_TYPE",
|
||||
132: "FIXED_DOUBLE_ARRAY_TYPE",
|
||||
133: "INTERNAL_CLASS_WITH_SMI_ELEMENTS_TYPE",
|
||||
134: "SLOPPY_ARGUMENTS_ELEMENTS_TYPE",
|
||||
135: "AWAIT_CONTEXT_TYPE",
|
||||
136: "BLOCK_CONTEXT_TYPE",
|
||||
137: "CATCH_CONTEXT_TYPE",
|
||||
138: "DEBUG_EVALUATE_CONTEXT_TYPE",
|
||||
139: "EVAL_CONTEXT_TYPE",
|
||||
140: "FUNCTION_CONTEXT_TYPE",
|
||||
141: "MODULE_CONTEXT_TYPE",
|
||||
142: "NATIVE_CONTEXT_TYPE",
|
||||
143: "SCRIPT_CONTEXT_TYPE",
|
||||
144: "WITH_CONTEXT_TYPE",
|
||||
145: "EXPORTED_SUB_CLASS_BASE_TYPE",
|
||||
146: "EXPORTED_SUB_CLASS_TYPE",
|
||||
147: "EXPORTED_SUB_CLASS2_TYPE",
|
||||
148: "SMALL_ORDERED_HASH_MAP_TYPE",
|
||||
149: "SMALL_ORDERED_HASH_SET_TYPE",
|
||||
150: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
|
||||
151: "DESCRIPTOR_ARRAY_TYPE",
|
||||
152: "STRONG_DESCRIPTOR_ARRAY_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: "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_CAPI_FUNCTION_DATA_TYPE",
|
||||
181: "WASM_STRUCT_TYPE",
|
||||
182: "WEAK_ARRAY_LIST_TYPE",
|
||||
183: "WEAK_CELL_TYPE",
|
||||
184: "JS_PROXY_TYPE",
|
||||
1057: "JS_OBJECT_TYPE",
|
||||
186: "JS_GLOBAL_OBJECT_TYPE",
|
||||
187: "JS_GLOBAL_PROXY_TYPE",
|
||||
188: "JS_MODULE_NAMESPACE_TYPE",
|
||||
185: "JS_GLOBAL_OBJECT_TYPE",
|
||||
186: "JS_GLOBAL_PROXY_TYPE",
|
||||
187: "JS_MODULE_NAMESPACE_TYPE",
|
||||
1040: "JS_SPECIAL_API_OBJECT_TYPE",
|
||||
1041: "JS_PRIMITIVE_WRAPPER_TYPE",
|
||||
1042: "JS_ARRAY_ITERATOR_PROTOTYPE_TYPE",
|
||||
@ -217,76 +216,76 @@ INSTANCE_TYPES = {
|
||||
|
||||
# List of known V8 maps.
|
||||
KNOWN_MAPS = {
|
||||
("read_only_space", 0x02115): (171, "MetaMap"),
|
||||
("read_only_space", 0x02115): (170, "MetaMap"),
|
||||
("read_only_space", 0x0213d): (67, "NullMap"),
|
||||
("read_only_space", 0x02165): (153, "StrongDescriptorArrayMap"),
|
||||
("read_only_space", 0x0218d): (158, "WeakFixedArrayMap"),
|
||||
("read_only_space", 0x02165): (152, "StrongDescriptorArrayMap"),
|
||||
("read_only_space", 0x0218d): (157, "WeakFixedArrayMap"),
|
||||
("read_only_space", 0x021cd): (96, "EnumCacheMap"),
|
||||
("read_only_space", 0x02201): (117, "FixedArrayMap"),
|
||||
("read_only_space", 0x02201): (116, "FixedArrayMap"),
|
||||
("read_only_space", 0x0224d): (8, "OneByteInternalizedStringMap"),
|
||||
("read_only_space", 0x02299): (168, "FreeSpaceMap"),
|
||||
("read_only_space", 0x022c1): (167, "OnePointerFillerMap"),
|
||||
("read_only_space", 0x022e9): (167, "TwoPointerFillerMap"),
|
||||
("read_only_space", 0x02299): (167, "FreeSpaceMap"),
|
||||
("read_only_space", 0x022c1): (166, "OnePointerFillerMap"),
|
||||
("read_only_space", 0x022e9): (166, "TwoPointerFillerMap"),
|
||||
("read_only_space", 0x02311): (67, "UninitializedMap"),
|
||||
("read_only_space", 0x02389): (67, "UndefinedMap"),
|
||||
("read_only_space", 0x023cd): (66, "HeapNumberMap"),
|
||||
("read_only_space", 0x02401): (67, "TheHoleMap"),
|
||||
("read_only_space", 0x02461): (67, "BooleanMap"),
|
||||
("read_only_space", 0x02505): (131, "ByteArrayMap"),
|
||||
("read_only_space", 0x0252d): (117, "FixedCOWArrayMap"),
|
||||
("read_only_space", 0x02555): (118, "HashTableMap"),
|
||||
("read_only_space", 0x02505): (130, "ByteArrayMap"),
|
||||
("read_only_space", 0x0252d): (116, "FixedCOWArrayMap"),
|
||||
("read_only_space", 0x02555): (117, "HashTableMap"),
|
||||
("read_only_space", 0x0257d): (64, "SymbolMap"),
|
||||
("read_only_space", 0x025a5): (40, "OneByteStringMap"),
|
||||
("read_only_space", 0x025cd): (129, "ScopeInfoMap"),
|
||||
("read_only_space", 0x025f5): (176, "SharedFunctionInfoMap"),
|
||||
("read_only_space", 0x0261d): (161, "CodeMap"),
|
||||
("read_only_space", 0x02645): (160, "CellMap"),
|
||||
("read_only_space", 0x0266d): (175, "GlobalPropertyCellMap"),
|
||||
("read_only_space", 0x025cd): (128, "ScopeInfoMap"),
|
||||
("read_only_space", 0x025f5): (175, "SharedFunctionInfoMap"),
|
||||
("read_only_space", 0x0261d): (160, "CodeMap"),
|
||||
("read_only_space", 0x02645): (159, "CellMap"),
|
||||
("read_only_space", 0x0266d): (174, "GlobalPropertyCellMap"),
|
||||
("read_only_space", 0x02695): (70, "ForeignMap"),
|
||||
("read_only_space", 0x026bd): (159, "TransitionArrayMap"),
|
||||
("read_only_space", 0x026bd): (158, "TransitionArrayMap"),
|
||||
("read_only_space", 0x026e5): (45, "ThinOneByteStringMap"),
|
||||
("read_only_space", 0x0270d): (166, "FeedbackVectorMap"),
|
||||
("read_only_space", 0x0270d): (165, "FeedbackVectorMap"),
|
||||
("read_only_space", 0x02749): (67, "ArgumentsMarkerMap"),
|
||||
("read_only_space", 0x027a9): (67, "ExceptionMap"),
|
||||
("read_only_space", 0x02805): (67, "TerminationExceptionMap"),
|
||||
("read_only_space", 0x0286d): (67, "OptimizedOutMap"),
|
||||
("read_only_space", 0x028cd): (67, "StaleRegisterMap"),
|
||||
("read_only_space", 0x0292d): (130, "ScriptContextTableMap"),
|
||||
("read_only_space", 0x02955): (127, "ClosureFeedbackCellArrayMap"),
|
||||
("read_only_space", 0x0297d): (165, "FeedbackMetadataArrayMap"),
|
||||
("read_only_space", 0x029a5): (117, "ArrayListMap"),
|
||||
("read_only_space", 0x0292d): (129, "ScriptContextTableMap"),
|
||||
("read_only_space", 0x02955): (126, "ClosureFeedbackCellArrayMap"),
|
||||
("read_only_space", 0x0297d): (164, "FeedbackMetadataArrayMap"),
|
||||
("read_only_space", 0x029a5): (116, "ArrayListMap"),
|
||||
("read_only_space", 0x029cd): (65, "BigIntMap"),
|
||||
("read_only_space", 0x029f5): (128, "ObjectBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x02a1d): (132, "BytecodeArrayMap"),
|
||||
("read_only_space", 0x02a45): (162, "CodeDataContainerMap"),
|
||||
("read_only_space", 0x02a6d): (163, "CoverageInfoMap"),
|
||||
("read_only_space", 0x02a95): (133, "FixedDoubleArrayMap"),
|
||||
("read_only_space", 0x02abd): (120, "GlobalDictionaryMap"),
|
||||
("read_only_space", 0x029f5): (127, "ObjectBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x02a1d): (131, "BytecodeArrayMap"),
|
||||
("read_only_space", 0x02a45): (161, "CodeDataContainerMap"),
|
||||
("read_only_space", 0x02a6d): (162, "CoverageInfoMap"),
|
||||
("read_only_space", 0x02a95): (132, "FixedDoubleArrayMap"),
|
||||
("read_only_space", 0x02abd): (119, "GlobalDictionaryMap"),
|
||||
("read_only_space", 0x02ae5): (97, "ManyClosuresCellMap"),
|
||||
("read_only_space", 0x02b0d): (117, "ModuleInfoMap"),
|
||||
("read_only_space", 0x02b35): (121, "NameDictionaryMap"),
|
||||
("read_only_space", 0x02b0d): (116, "ModuleInfoMap"),
|
||||
("read_only_space", 0x02b35): (120, "NameDictionaryMap"),
|
||||
("read_only_space", 0x02b5d): (97, "NoClosuresCellMap"),
|
||||
("read_only_space", 0x02b85): (122, "NumberDictionaryMap"),
|
||||
("read_only_space", 0x02b85): (121, "NumberDictionaryMap"),
|
||||
("read_only_space", 0x02bad): (97, "OneClosureCellMap"),
|
||||
("read_only_space", 0x02bd5): (123, "OrderedHashMapMap"),
|
||||
("read_only_space", 0x02bfd): (124, "OrderedHashSetMap"),
|
||||
("read_only_space", 0x02c25): (125, "OrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x02c4d): (173, "PreparseDataMap"),
|
||||
("read_only_space", 0x02c75): (174, "PropertyArrayMap"),
|
||||
("read_only_space", 0x02bd5): (122, "OrderedHashMapMap"),
|
||||
("read_only_space", 0x02bfd): (123, "OrderedHashSetMap"),
|
||||
("read_only_space", 0x02c25): (124, "OrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x02c4d): (172, "PreparseDataMap"),
|
||||
("read_only_space", 0x02c75): (173, "PropertyArrayMap"),
|
||||
("read_only_space", 0x02c9d): (93, "SideEffectCallHandlerInfoMap"),
|
||||
("read_only_space", 0x02cc5): (93, "SideEffectFreeCallHandlerInfoMap"),
|
||||
("read_only_space", 0x02ced): (93, "NextCallSideEffectFreeCallHandlerInfoMap"),
|
||||
("read_only_space", 0x02d15): (126, "SimpleNumberDictionaryMap"),
|
||||
("read_only_space", 0x02d3d): (149, "SmallOrderedHashMapMap"),
|
||||
("read_only_space", 0x02d65): (150, "SmallOrderedHashSetMap"),
|
||||
("read_only_space", 0x02d8d): (151, "SmallOrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x02db5): (154, "SourceTextModuleMap"),
|
||||
("read_only_space", 0x02ddd): (155, "SyntheticModuleMap"),
|
||||
("read_only_space", 0x02d15): (125, "SimpleNumberDictionaryMap"),
|
||||
("read_only_space", 0x02d3d): (148, "SmallOrderedHashMapMap"),
|
||||
("read_only_space", 0x02d65): (149, "SmallOrderedHashSetMap"),
|
||||
("read_only_space", 0x02d8d): (150, "SmallOrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x02db5): (153, "SourceTextModuleMap"),
|
||||
("read_only_space", 0x02ddd): (154, "SyntheticModuleMap"),
|
||||
("read_only_space", 0x02e05): (71, "WasmTypeInfoMap"),
|
||||
("read_only_space", 0x02e2d): (183, "WeakArrayListMap"),
|
||||
("read_only_space", 0x02e55): (119, "EphemeronHashTableMap"),
|
||||
("read_only_space", 0x02e7d): (164, "EmbedderDataArrayMap"),
|
||||
("read_only_space", 0x02ea5): (184, "WeakCellMap"),
|
||||
("read_only_space", 0x02e2d): (182, "WeakArrayListMap"),
|
||||
("read_only_space", 0x02e55): (118, "EphemeronHashTableMap"),
|
||||
("read_only_space", 0x02e7d): (163, "EmbedderDataArrayMap"),
|
||||
("read_only_space", 0x02ea5): (183, "WeakCellMap"),
|
||||
("read_only_space", 0x02ecd): (32, "StringMap"),
|
||||
("read_only_space", 0x02ef5): (41, "ConsOneByteStringMap"),
|
||||
("read_only_space", 0x02f1d): (33, "ConsStringMap"),
|
||||
@ -342,40 +341,39 @@ KNOWN_MAPS = {
|
||||
("read_only_space", 0x058cd): (113, "WasmExportedFunctionDataMap"),
|
||||
("read_only_space", 0x058f5): (114, "WasmIndirectFunctionTableMap"),
|
||||
("read_only_space", 0x0591d): (115, "WasmJSFunctionDataMap"),
|
||||
("read_only_space", 0x05945): (116, "WasmValueMap"),
|
||||
("read_only_space", 0x0596d): (135, "SloppyArgumentsElementsMap"),
|
||||
("read_only_space", 0x05995): (152, "DescriptorArrayMap"),
|
||||
("read_only_space", 0x059bd): (157, "UncompiledDataWithoutPreparseDataMap"),
|
||||
("read_only_space", 0x059e5): (156, "UncompiledDataWithPreparseDataMap"),
|
||||
("read_only_space", 0x05a0d): (172, "OnHeapBasicBlockProfilerDataMap"),
|
||||
("read_only_space", 0x05a35): (181, "WasmCapiFunctionDataMap"),
|
||||
("read_only_space", 0x05a5d): (169, "InternalClassMap"),
|
||||
("read_only_space", 0x05a85): (178, "SmiPairMap"),
|
||||
("read_only_space", 0x05aad): (177, "SmiBoxMap"),
|
||||
("read_only_space", 0x05ad5): (146, "ExportedSubClassBaseMap"),
|
||||
("read_only_space", 0x05afd): (147, "ExportedSubClassMap"),
|
||||
("read_only_space", 0x05b25): (68, "AbstractInternalClassSubclass1Map"),
|
||||
("read_only_space", 0x05b4d): (69, "AbstractInternalClassSubclass2Map"),
|
||||
("read_only_space", 0x05b75): (134, "InternalClassWithSmiElementsMap"),
|
||||
("read_only_space", 0x05b9d): (170, "InternalClassWithStructElementsMap"),
|
||||
("read_only_space", 0x05bc5): (148, "ExportedSubClass2Map"),
|
||||
("read_only_space", 0x05bed): (179, "SortStateMap"),
|
||||
("read_only_space", 0x05c15): (86, "AllocationSiteWithWeakNextMap"),
|
||||
("read_only_space", 0x05c3d): (86, "AllocationSiteWithoutWeakNextMap"),
|
||||
("read_only_space", 0x05c65): (77, "LoadHandler1Map"),
|
||||
("read_only_space", 0x05c8d): (77, "LoadHandler2Map"),
|
||||
("read_only_space", 0x05cb5): (77, "LoadHandler3Map"),
|
||||
("read_only_space", 0x05cdd): (78, "StoreHandler0Map"),
|
||||
("read_only_space", 0x05d05): (78, "StoreHandler1Map"),
|
||||
("read_only_space", 0x05d2d): (78, "StoreHandler2Map"),
|
||||
("read_only_space", 0x05d55): (78, "StoreHandler3Map"),
|
||||
("read_only_space", 0x05945): (134, "SloppyArgumentsElementsMap"),
|
||||
("read_only_space", 0x0596d): (151, "DescriptorArrayMap"),
|
||||
("read_only_space", 0x05995): (156, "UncompiledDataWithoutPreparseDataMap"),
|
||||
("read_only_space", 0x059bd): (155, "UncompiledDataWithPreparseDataMap"),
|
||||
("read_only_space", 0x059e5): (171, "OnHeapBasicBlockProfilerDataMap"),
|
||||
("read_only_space", 0x05a0d): (180, "WasmCapiFunctionDataMap"),
|
||||
("read_only_space", 0x05a35): (168, "InternalClassMap"),
|
||||
("read_only_space", 0x05a5d): (177, "SmiPairMap"),
|
||||
("read_only_space", 0x05a85): (176, "SmiBoxMap"),
|
||||
("read_only_space", 0x05aad): (145, "ExportedSubClassBaseMap"),
|
||||
("read_only_space", 0x05ad5): (146, "ExportedSubClassMap"),
|
||||
("read_only_space", 0x05afd): (68, "AbstractInternalClassSubclass1Map"),
|
||||
("read_only_space", 0x05b25): (69, "AbstractInternalClassSubclass2Map"),
|
||||
("read_only_space", 0x05b4d): (133, "InternalClassWithSmiElementsMap"),
|
||||
("read_only_space", 0x05b75): (169, "InternalClassWithStructElementsMap"),
|
||||
("read_only_space", 0x05b9d): (147, "ExportedSubClass2Map"),
|
||||
("read_only_space", 0x05bc5): (178, "SortStateMap"),
|
||||
("read_only_space", 0x05bed): (86, "AllocationSiteWithWeakNextMap"),
|
||||
("read_only_space", 0x05c15): (86, "AllocationSiteWithoutWeakNextMap"),
|
||||
("read_only_space", 0x05c3d): (77, "LoadHandler1Map"),
|
||||
("read_only_space", 0x05c65): (77, "LoadHandler2Map"),
|
||||
("read_only_space", 0x05c8d): (77, "LoadHandler3Map"),
|
||||
("read_only_space", 0x05cb5): (78, "StoreHandler0Map"),
|
||||
("read_only_space", 0x05cdd): (78, "StoreHandler1Map"),
|
||||
("read_only_space", 0x05d05): (78, "StoreHandler2Map"),
|
||||
("read_only_space", 0x05d2d): (78, "StoreHandler3Map"),
|
||||
("map_space", 0x02115): (1057, "ExternalMap"),
|
||||
("map_space", 0x0213d): (1084, "JSMessageObjectMap"),
|
||||
("map_space", 0x02165): (182, "WasmRttEqrefMap"),
|
||||
("map_space", 0x0218d): (182, "WasmRttAnyrefMap"),
|
||||
("map_space", 0x021b5): (182, "WasmRttExternrefMap"),
|
||||
("map_space", 0x021dd): (182, "WasmRttFuncrefMap"),
|
||||
("map_space", 0x02205): (182, "WasmRttI31refMap"),
|
||||
("map_space", 0x02165): (181, "WasmRttEqrefMap"),
|
||||
("map_space", 0x0218d): (181, "WasmRttAnyrefMap"),
|
||||
("map_space", 0x021b5): (181, "WasmRttExternrefMap"),
|
||||
("map_space", 0x021dd): (181, "WasmRttFuncrefMap"),
|
||||
("map_space", 0x02205): (181, "WasmRttI31refMap"),
|
||||
}
|
||||
|
||||
# List of known V8 objects.
|
||||
|
Loading…
Reference in New Issue
Block a user