support normal arrays

This commit is contained in:
dcode 2019-05-25 01:14:26 +02:00
parent 9620f18249
commit c34ed66fd9
42 changed files with 831 additions and 468 deletions

View File

@ -28,7 +28,7 @@ API
**Note** that `T` above can either be omitted if the structure of the module is unknown, or can reference a `.d.ts` (i.e. `typeof MyModule`) as produced by the compiler with the `-d` option.
Instances are automatically populated with useful utility:
Besides demangling classes exported from your entry file to a handy object structure one can use like JS objects, instances are automatically populated with useful utility:
* **I8**: `Int8Array`<br />
An 8-bit signed integer view on the memory.
@ -162,7 +162,7 @@ Instances are automatically populated with useful utility:
**Note** that the allocation and ownership features above require the `full` (this is the default) or the `stub` runtime to be present in your module. Other runtime variations do not export this functionality without further ado (so the compiler can eliminate what's dead code).
**Note** that references returned from exported functions have already been retained for you and the runtime expects that you release them once not needed anymore.
**Note** that references returned from exported functions have already been retained for you and the runtime expects that you release them once not needed anymore. This is also true for constructors and getters.
Examples
--------

View File

@ -10,25 +10,28 @@ const STRING_ID = 1;
const ARRAYBUFFERVIEW_ID = 2;
// Runtime type information
const ARRAY = 1 << 0;
const SET = 1 << 1;
const MAP = 1 << 2;
const VAL_ALIGN = 1 << 4;
const VAL_SIGNED = 1 << 9;
const VAL_FLOAT = 1 << 10;
const VAL_NULLABLE = 1 << 11;
const VAL_MANAGED = 1 << 12;
const KEY_ALIGN = 1 << 13;
const KEY_SIGNED = 1 << 18;
const KEY_FLOAT = 1 << 19;
const KEY_NULLABLE = 1 << 20;
const KEY_MANAGED = 1 << 21;
const ARRAYBUFFERVIEW = 1 << 0;
const ARRAY = 1 << 1;
const SET = 1 << 2;
const MAP = 1 << 3;
const VAL_ALIGN = 1 << 5;
const VAL_SIGNED = 1 << 10;
const VAL_FLOAT = 1 << 11;
const VAL_NULLABLE = 1 << 12;
const VAL_MANAGED = 1 << 13;
const KEY_ALIGN = 1 << 14;
const KEY_SIGNED = 1 << 19;
const KEY_FLOAT = 1 << 20;
const KEY_NULLABLE = 1 << 21;
const KEY_MANAGED = 1 << 22;
// ArrayBufferView layout
const ABV_BUFFER_OFFSET = 0;
const ABV_DATASTART_OFFSET = 4;
const ABV_DATALENGTH_OFFSET = 8;
const ABV_SIZE = 12;
// Array(BufferView) layout
const ARRAYBUFFERVIEW_BUFFER_OFFSET = 0;
const ARRAYBUFFERVIEW_DATASTART_OFFSET = 4;
const ARRAYBUFFERVIEW_DATALENGTH_OFFSET = 8;
const ARRAYBUFFERVIEW_SIZE = 12;
const ARRAY_LENGTH_OFFSET = 12;
const ARRAY_SIZE = 16;
const BIGINT = typeof BigUint64Array !== "undefined";
const THIS = Symbol();
@ -169,15 +172,16 @@ function postInstantiate(baseModule, instance) {
/** Allocates a new array in the module's memory and returns its retained pointer. */
function __allocArray(id, values) {
const info = getInfo(id);
if (!(info & ARRAY)) throw Error("not an array: " + id + " @ " + info);
if (!(info & (ARRAYBUFFERVIEW | ARRAY))) throw Error("not an array: " + id + " @ " + info);
const align = getAlign(VAL_ALIGN, info);
const length = values.length;
const buf = alloc(length << align, ARRAYBUFFER_ID);
const arr = alloc(ABV_SIZE, id);
const arr = alloc(ARRAYBUFFERVIEW_SIZE, id);
checkMem();
U32[arr + ABV_BUFFER_OFFSET >>> 2] = retain(buf);
U32[arr + ABV_DATASTART_OFFSET >>> 2] = buf;
U32[arr + ABV_DATALENGTH_OFFSET >>> 2] = length << align;
U32[arr + ARRAYBUFFERVIEW_BUFFER_OFFSET >>> 2] = retain(buf);
U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2] = buf;
U32[arr + ARRAYBUFFERVIEW_DATALENGTH_OFFSET >>> 2] = length << align;
if (info & ARRAY) U32[arr + ARRAY_LENGTH_OFFSET >>> 2] = length;
const view = getView(align, info & VAL_SIGNED, info & VAL_FLOAT);
for (let i = 0; i < length; ++i) view[(buf >> align) + i] = values[i];
if (info & VAL_MANAGED) for (let i = 0; i < length; ++i) retain(values[i]);
@ -191,10 +195,12 @@ function postInstantiate(baseModule, instance) {
checkMem();
const id = U32[arr + ID_OFFSET >>> 2];
const info = getInfo(id);
if (!(info & ARRAY)) throw Error("not an array: " + id);
if (!(info & (ARRAYBUFFERVIEW | ARRAY))) throw Error("not an array: " + id);
const align = getAlign(VAL_ALIGN, info);
var buf = U32[arr + ABV_DATASTART_OFFSET >>> 2];
const length = U32[buf + SIZE_OFFSET >>> 2] >>> align;
var buf = U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2];
const length = info & ARRAY
? U32[arr + ARRAY_LENGTH_OFFSET >>> 2]
: U32[buf + SIZE_OFFSET >>> 2] >>> align;
const view = getView(align, info & VAL_SIGNED, info & VAL_FLOAT);
return Array.from(view.slice(buf >>>= align, buf + length));
}

View File

@ -45,6 +45,10 @@ export function sum(arr: Int32Array): i32 {
return v;
}
export function changeLength(arr: Array<i32>, length: i32): void {
arr.length = length;
}
export function varadd(a: i32 = 1, b: i32 = 2): i32 {
return a + b;
}
@ -62,3 +66,4 @@ export function dotrace(num: f64): void {
export const INT32ARRAY_ID = idof<Int32Array>();
export const UINT32ARRAY_ID = idof<Uint32Array>();
export const FLOAT32ARRAY_ID = idof<Float32Array>();
export const ARRAYI32_ID = idof<Array<i32>>();

View File

@ -72,6 +72,17 @@ assert.strictEqual(module.__getString(module.COLOR), "red");
try { module.__release(ref); assert(false); } catch (e) {};
}
// should be able to work with normal arrays
{
let arr = [1, 2, 3, 4, 5];
let ref = module.__retain(module.__allocArray(module.ARRAYI32_ID, arr));
assert(module.__instanceof(ref, module.ARRAYI32_ID));
module.changeLength(ref, 3);
assert.deepEqual(module.__getArray(ref), [1, 2, 3]);
module.__release(ref);
try { module.__release(ref); assert(false); } catch (e) {};
}
// should be able to correctly call a function with variable arguments
assert.strictEqual(module.varadd(), 3);
assert.strictEqual(module.varadd(2, 3), 5);

View File

@ -4164,6 +4164,7 @@ export function compileRTTI(compiler: Compiler): void {
var off = 4;
var abvInstance = program.arrayBufferViewInstance;
var abvPrototype = abvInstance.prototype;
var arrayPrototype = program.arrayPrototype;
var setPrototype = program.setPrototype;
var mapPrototype = program.mapPrototype;
var lastId = 0;
@ -4173,7 +4174,9 @@ export function compileRTTI(compiler: Compiler): void {
if (instance.isAcyclic) flags |= TypeinfoFlags.ACYCLIC;
if (instance !== abvInstance && instance.extends(abvPrototype)) {
let valueType = instance.getArrayValueType();
flags |= TypeinfoFlags.ARRAY;
flags |= instance.extends(arrayPrototype)
? TypeinfoFlags.ARRAY
: TypeinfoFlags.ARRAYBUFFERVIEW;
flags |= TypeinfoFlags.VALUE_ALIGN_0 * typeToRuntimeFlags(valueType);
} else if (instance.extends(setPrototype)) {
let typeArguments = assert(instance.getTypeArgumentsTo(setPrototype));

View File

@ -25,48 +25,50 @@ export class Typeinfo {
export const enum TypeinfoFlags {
/** No specific flags. */
NONE = 0,
/** Type is an `ArrayBufferView`. */
ARRAYBUFFERVIEW = 1 << 0,
/** Type is an `Array`. */
ARRAY = 1 << 0,
ARRAY = 1 << 1,
/** Type is a `Set`. */
SET = 1 << 1,
SET = 1 << 2,
/** Type is a `Map`. */
MAP = 1 << 2,
MAP = 1 << 3,
/** Type is inherently acyclic. */
ACYCLIC = 1 << 3,
ACYCLIC = 1 << 4,
/** Value alignment of 1 byte. */
VALUE_ALIGN_0 = 1 << 4,
VALUE_ALIGN_0 = 1 << 5,
/** Value alignment of 2 bytes. */
VALUE_ALIGN_1 = 1 << 5,
VALUE_ALIGN_1 = 1 << 6,
/** Value alignment of 4 bytes. */
VALUE_ALIGN_2 = 1 << 6,
VALUE_ALIGN_2 = 1 << 7,
/** Value alignment of 8 bytes. */
VALUE_ALIGN_3 = 1 << 7,
VALUE_ALIGN_3 = 1 << 8,
/** Value alignment of 16 bytes. */
VALUE_ALIGN_4 = 1 << 8,
VALUE_ALIGN_4 = 1 << 9,
/** Value is a signed type. */
VALUE_SIGNED = 1 << 9,
VALUE_SIGNED = 1 << 10,
/** Value is a float type. */
VALUE_FLOAT = 1 << 10,
VALUE_FLOAT = 1 << 11,
/** Value type is nullable. */
VALUE_NULLABLE = 1 << 11,
VALUE_NULLABLE = 1 << 12,
/** Value type is managed. */
VALUE_MANAGED = 1 << 12,
VALUE_MANAGED = 1 << 13,
/** Key alignment of 1 byte. */
KEY_ALIGN_0 = 1 << 13,
KEY_ALIGN_0 = 1 << 14,
/** Key alignment of 2 bytes. */
KEY_ALIGN_1 = 1 << 14,
KEY_ALIGN_1 = 1 << 15,
/** Key alignment of 4 bytes. */
KEY_ALIGN_2 = 1 << 15,
KEY_ALIGN_2 = 1 << 16,
/** Key alignment of 8 bytes. */
KEY_ALIGN_3 = 1 << 16,
KEY_ALIGN_3 = 1 << 17,
/** Key alignment of 16 bytes. */
KEY_ALIGN_4 = 1 << 17,
KEY_ALIGN_4 = 1 << 18,
/** Value is a signed type. */
KEY_SIGNED = 1 << 18,
KEY_SIGNED = 1 << 19,
/** Value is a float type. */
KEY_FLOAT = 1 << 19,
KEY_FLOAT = 1 << 20,
/** Key type is nullable. */
KEY_NULLABLE = 1 << 20,
KEY_NULLABLE = 1 << 21,
/** Key type is managed. */
KEY_MANAGED = 1 << 21
KEY_MANAGED = 1 << 22
}

View File

@ -17,7 +17,7 @@
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
(data (i32.const 272) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $rc/global-init/a (mut i32) (i32.const 0))
(global $rc/global-init/b (mut i32) (i32.const 0))
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -1353,7 +1353,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -20,7 +20,7 @@
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
(data (i32.const 272) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $rc/global-init/a (mut i32) (i32.const 0))
@ -3051,7 +3051,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -18,7 +18,7 @@
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
(data (i32.const 272) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -1405,7 +1405,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -20,7 +20,7 @@
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
(data (i32.const 272) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3045,7 +3045,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -18,7 +18,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $rc/logical-and-mismatch/gloRef (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
@ -1412,7 +1412,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -19,7 +19,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3061,7 +3061,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -18,7 +18,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $rc/logical-or-mismatch/gloRef (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
@ -1412,7 +1412,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -19,7 +19,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3061,7 +3061,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -13,7 +13,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -1398,7 +1398,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -15,7 +15,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3037,7 +3037,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -18,7 +18,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $rc/ternary-mismatch/gloRef (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
@ -1423,7 +1423,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -19,7 +19,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3072,7 +3072,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -28,7 +28,7 @@
(data (i32.const 608) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b")
(data (i32.const 632) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l")
(data (i32.const 656) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00d")
(data (i32.const 680) "\05\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\02\00\00\02\00\00\00I\10\00\00\02")
(data (i32.const 680) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\92 \00\00\02")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -1416,7 +1416,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -28,7 +28,7 @@
(data (i32.const 608) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00")
(data (i32.const 632) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00")
(data (i32.const 656) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00d\00")
(data (i32.const 680) "\05\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\02\00\00\02\00\00\00I\10\00\00\02\00\00\00")
(data (i32.const 680) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\92 \00\00\02\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3054,7 +3054,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -7,11 +7,11 @@
(data (i32.const 8) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 64) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s")
(data (i32.const 144) ":\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\02\00\00\02\00\00\00\19\00\00\00\02\00\00\00)\02\00\00\02\00\00\00)\00\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00\t\01\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00\1a\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\10\00\00\00\00\00\00J\18\00\00\00\00\00\00\1c\02\02\00\00\00\00\00,\02\05\00\00\00\00\00L\82\04\00\00\00\00\00\8cB\04\00\00\00\00\00\0c!\04\00\00\00\00\00\1c\82 \00\00\00\00\00\1c\820\00\00\00\00\00L0\04\00\00\00\00\00L8\04\00\00\00\00\00L\980\00\00\00\00\00L\82\0c\00\00\00\00\00\08")
(data (i32.const 524) "A\10\00\00\02\00\00\00\08")
(data (i32.const 548) "B\10\00\00\00\00\00\00\08")
(data (i32.const 572) "D\82 ")
(data (i32.const 588) "D\90\04\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 144) "E\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\002\04\00\00\02\00\00\002\00\00\00\02\00\00\00R\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\92\04\00\00\02\00\00\00\92\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\12\01\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\12\02\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d\00\00\00\00\00\00\14\02\00\00\00\00\00\00\94 \00\00\00\00\00\00\940\00\00\00\00\00\008\04\04\00\00\00\00\00X\04\n\00\00\00\00\00\98\04\t\00\00\00\00\00\18\85\08\00\00\00\00\00\18B\08\00\00\00\00\008\04A\00\00\00\00\008\04a\00\00\00\00\00\98`\08\00\00\00\00\00\98p\08\00\00\00\00\00\980a\00\00\00\00\00\98\04\19\00\00\00\00\00\10")
(data (i32.const 612) "\82 \00\00\02\00\00\00\10")
(data (i32.const 636) "\84 \00\00\00\00\00\00\10")
(data (i32.const 660) "\88\04A")
(data (i32.const 676) "\88 \t\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(export "memory" (memory $0))
(start $start)
(func $~lib/rt/__typeinfo (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -38,306 +38,344 @@
block $folding-inner0
i32.const 4
call $~lib/rt/__typeinfo
i32.const 537
i32.const 1073
i32.ne
if
br $folding-inner0
end
i32.const 5
call $~lib/rt/__typeinfo
i32.const 25
i32.const 49
i32.ne
if
br $folding-inner0
end
i32.const 6
call $~lib/rt/__typeinfo
i32.const 553
i32.const 49
i32.ne
if
br $folding-inner0
end
i32.const 7
call $~lib/rt/__typeinfo
i32.const 41
i32.const 1105
i32.ne
if
br $folding-inner0
end
i32.const 8
call $~lib/rt/__typeinfo
i32.const 585
i32.const 81
i32.ne
if
br $folding-inner0
end
i32.const 9
call $~lib/rt/__typeinfo
i32.const 73
i32.const 1169
i32.ne
if
br $folding-inner0
end
i32.const 10
call $~lib/rt/__typeinfo
i32.const 649
i32.const 145
i32.ne
if
br $folding-inner0
end
i32.const 11
call $~lib/rt/__typeinfo
i32.const 137
i32.const 1297
i32.ne
if
br $folding-inner0
end
i32.const 12
call $~lib/rt/__typeinfo
i32.const 1609
i32.const 273
i32.ne
if
br $folding-inner0
end
i32.const 13
call $~lib/rt/__typeinfo
i32.const 1673
i32.const 3217
i32.ne
if
br $folding-inner0
end
i32.const 14
call $~lib/rt/__typeinfo
i32.const 265
i32.const 3345
i32.ne
if
br $folding-inner0
end
i32.const 15
call $~lib/rt/__typeinfo
i32.const 1074
i32.ne
if
br $folding-inner0
end
i32.const 16
call $~lib/rt/__typeinfo
i32.const 4169
i32.const 50
i32.ne
if
br $folding-inner0
end
i32.const 17
call $~lib/rt/__typeinfo
i32.const 6217
i32.const 1106
i32.ne
if
br $folding-inner0
end
i32.const 18
call $~lib/rt/__typeinfo
i32.const 538
i32.const 82
i32.ne
if
br $folding-inner0
end
i32.const 19
call $~lib/rt/__typeinfo
i32.const 26
i32.const 1170
i32.ne
if
br $folding-inner0
end
i32.const 20
call $~lib/rt/__typeinfo
i32.const 554
i32.const 146
i32.ne
if
br $folding-inner0
end
i32.const 21
call $~lib/rt/__typeinfo
i32.const 42
i32.const 1298
i32.ne
if
br $folding-inner0
end
i32.const 22
call $~lib/rt/__typeinfo
i32.const 586
i32.const 274
i32.ne
if
br $folding-inner0
end
i32.const 23
call $~lib/rt/__typeinfo
i32.const 74
i32.const 3218
i32.ne
if
br $folding-inner0
end
i32.const 24
call $~lib/rt/__typeinfo
i32.const 650
i32.const 3346
i32.ne
if
br $folding-inner0
end
i32.const 25
call $~lib/rt/__typeinfo
i32.const 138
i32.ne
if
br $folding-inner0
end
i32.const 26
call $~lib/rt/__typeinfo
i32.const 1610
i32.const 530
i32.ne
if
br $folding-inner0
end
i32.const 27
call $~lib/rt/__typeinfo
i32.const 1674
i32.const 8338
i32.ne
if
br $folding-inner0
end
i32.const 28
call $~lib/rt/__typeinfo
i32.const 266
i32.const 12434
i32.ne
if
br $folding-inner0
end
i32.const 29
call $~lib/rt/__typeinfo
i32.const 4170
i32.const 1076
i32.ne
if
br $folding-inner0
end
i32.const 30
call $~lib/rt/__typeinfo
i32.const 6218
i32.const 52
i32.ne
if
br $folding-inner0
end
i32.const 31
call $~lib/rt/__typeinfo
i32.const 131612
i32.const 1108
i32.ne
if
br $folding-inner0
end
i32.const 32
call $~lib/rt/__typeinfo
i32.const 328236
i32.const 84
i32.ne
if
br $folding-inner0
end
i32.const 33
call $~lib/rt/__typeinfo
i32.const 295500
i32.const 1172
i32.ne
if
br $folding-inner0
end
i32.const 34
call $~lib/rt/__typeinfo
i32.const 279180
i32.const 148
i32.ne
if
br $folding-inner0
end
i32.const 35
call $~lib/rt/__typeinfo
i32.const 270604
i32.const 1300
i32.ne
if
br $folding-inner0
end
i32.const 36
call $~lib/rt/__typeinfo
i32.const 2130460
i32.const 276
i32.ne
if
br $folding-inner0
end
i32.const 37
call $~lib/rt/__typeinfo
i32.const 3179036
i32.const 3220
i32.ne
if
br $folding-inner0
end
i32.const 38
call $~lib/rt/__typeinfo
i32.const 274508
i32.const 3348
i32.ne
if
br $folding-inner0
end
i32.const 39
call $~lib/rt/__typeinfo
i32.const 276556
i32.const 532
i32.ne
if
br $folding-inner0
end
i32.const 40
call $~lib/rt/__typeinfo
i32.const 3184716
i32.const 8340
i32.ne
if
br $folding-inner0
end
i32.const 41
call $~lib/rt/__typeinfo
i32.const 819788
i32.const 12436
i32.ne
if
br $folding-inner0
end
i32.const 42
call $~lib/rt/__typeinfo
i32.const 8
i32.const 263224
i32.ne
if
br $folding-inner0
end
i32.const 43
call $~lib/rt/__typeinfo
i32.const 656472
i32.ne
if
br $folding-inner0
end
i32.const 44
call $~lib/rt/__typeinfo
i32.const 591000
i32.ne
if
br $folding-inner0
end
i32.const 45
call $~lib/rt/__typeinfo
i32.const 558360
i32.ne
if
br $folding-inner0
end
i32.const 46
call $~lib/rt/__typeinfo
i32.const 541208
i32.ne
if
br $folding-inner0
end
i32.const 47
call $~lib/rt/__typeinfo
i32.const 4260920
i32.ne
if
br $folding-inner0
end
i32.const 48
call $~lib/rt/__typeinfo
i32.const 8
i32.const 6358072
i32.ne
if
br $folding-inner0
end
i32.const 49
call $~lib/rt/__typeinfo
i32.const 549016
i32.ne
if
br $folding-inner0
end
i32.const 50
call $~lib/rt/__typeinfo
i32.const 553112
i32.ne
if
br $folding-inner0
end
i32.const 51
call $~lib/rt/__typeinfo
i32.const 8
i32.const 6369432
i32.ne
if
br $folding-inner0
end
i32.const 52
call $~lib/rt/__typeinfo
i32.const 1639576
i32.ne
if
br $folding-inner0
end
i32.const 53
call $~lib/rt/__typeinfo
i32.const 16
i32.ne
if
br $folding-inner0
end
@ -346,16 +384,55 @@
if
br $folding-inner0
end
i32.const 56
i32.const 55
call $~lib/rt/__typeinfo
i32.const 8
i32.ne
if
br $folding-inner0
end
i32.const 57
call $~lib/rt/__typeinfo
i32.const 8
if
br $folding-inner0
end
i32.const 59
call $~lib/rt/__typeinfo
i32.const 16
i32.ne
if
br $folding-inner0
end
i32.const 60
call $~lib/rt/__typeinfo
if
br $folding-inner0
end
i32.const 62
call $~lib/rt/__typeinfo
i32.const 16
i32.ne
if
br $folding-inner0
end
i32.const 63
call $~lib/rt/__typeinfo
if
br $folding-inner0
end
i32.const 65
call $~lib/rt/__typeinfo
if
br $folding-inner0
end
i32.const 67
call $~lib/rt/__typeinfo
i32.const 16
i32.ne
if
br $folding-inner0
end
i32.const 68
call $~lib/rt/__typeinfo
i32.const 16
i32.ne
if
br $folding-inner0

View File

@ -12,6 +12,18 @@ function test<T>(flags: TypeinfoFlags): void {
// structure flags
test<Int8Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED);
test<Uint8Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_0);
test<Uint8ClampedArray>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_0);
test<Int16Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED);
test<Uint16Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_1);
test<Int32Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED);
test<Uint32Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_2);
test<Int64Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED);
test<Uint64Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_3);
test<Float32Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT);
test<Float64Array>(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT);
class Ref {}
const VALUE_ALIGN_REF = sizeof<usize>() == 4 ? TypeinfoFlags.VALUE_ALIGN_2 : TypeinfoFlags.VALUE_ALIGN_3;

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00r\00t\00/\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s")
(data (i32.const 56) "\06\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\08\00\00\00\04")
(data (i32.const 56) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\10\00\00\00\04")
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
(global $rt/instanceof/animal (mut i32) (i32.const 0))

View File

@ -6,7 +6,7 @@
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00r\00t\00/\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00")
(data (i32.const 56) "\06\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\08\00\00\00\04\00\00\00")
(data (i32.const 56) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\10\00\00\00\04\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))

View File

@ -13,7 +13,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 256) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 256) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -1397,7 +1397,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -14,7 +14,7 @@
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 256) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 256) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3035,7 +3035,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -4,7 +4,7 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 8) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 8) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
(global $~lib/rt/RTTI_BASE i32 (i32.const 8))

View File

@ -4,7 +4,7 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 8) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(data (i32.const 8) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))

View File

@ -26,7 +26,7 @@
(data (i32.const 384) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
(data (i32.const 440) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
(data (i32.const 488) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 528) "\t\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\02\00\00\02\00\00\00I\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02")
(data (i32.const 528) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\002\04\00\00\02\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02")
(global $std/array-literal/emptyArrayI32 i32 (i32.const 320))
(global $std/array-literal/i (mut i32) (i32.const 0))
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -1499,7 +1499,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -27,7 +27,7 @@
(data (i32.const 384) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
(data (i32.const 440) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
(data (i32.const 488) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 528) "\t\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\02\00\00\02\00\00\00I\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00")
(data (i32.const 528) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\002\04\00\00\02\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/array-literal/staticArrayI8 i32 (i32.const 48))
@ -3194,7 +3194,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -210,7 +210,7 @@
(data (i32.const 7176) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02")
(data (i32.const 7200) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04")
(data (i32.const 7224) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01")
(data (i32.const 7248) "\1a\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00I\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00I\10\00\00\02\00\00\00\19\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\18\00\00\02\00\00\00\19\02\00\00\02\00\00\00)\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02")
(data (i32.const 7248) "\1a\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\002\00\00\00\02\00\00\00\92\00\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\00\92 \00\00\02\00\00\002\00\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\920\00\00\02\00\00\002\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02")
(table $0 57 funcref)
(elem (i32.const 0) $null $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR<f32>~anonymous|0 $~lib/util/sort/COMPARATOR<f64>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|0 $~lib/util/sort/COMPARATOR<u32>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR<i32>~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -1620,7 +1620,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -207,7 +207,7 @@
(data (i32.const 7624) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02")
(data (i32.const 7648) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04")
(data (i32.const 7672) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00")
(data (i32.const 7696) "\1a\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00I\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00I\10\00\00\02\00\00\00\19\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\18\00\00\02\00\00\00\19\02\00\00\02\00\00\00)\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02\00\00\00")
(data (i32.const 7696) "\1a\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\002\00\00\00\02\00\00\00\92\00\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\00\92 \00\00\02\00\00\002\00\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\920\00\00\02\00\00\002\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02\00\00\00")
(table $0 57 funcref)
(elem (i32.const 0) $null $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR<f32>~anonymous|0 $~lib/util/sort/COMPARATOR<f64>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|0 $~lib/util/sort/COMPARATOR<u32>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3257,7 +3257,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -35,7 +35,7 @@
(data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s")
(data (i32.const 400) "\0d\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00L\"\04\00\00\00\00\00L\"\00\00\00\00\00\00LB\04\00\00\00\00\00LB\00\00\00\00\00\00L\82\04\00\00\00\00\00L\82\00\00\00\00\00\00L\02\05\00\00\00\00\00L\02\01\00\00\00\00\00L\82\0c\00\00\00\00\00L\02\0d")
(data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -1655,7 +1655,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -31,7 +31,7 @@
(data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00")
(data (i32.const 400) "\0d\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00L\"\04\00\00\00\00\00L\"\00\00\00\00\00\00LB\04\00\00\00\00\00LB\00\00\00\00\00\00L\82\04\00\00\00\00\00L\82\00\00\00\00\00\00L\02\05\00\00\00\00\00L\02\01\00\00\00\00\00L\82\0c\00\00\00\00\00L\02\0d\00\00\00\00\00")
(data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3343,7 +3343,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -32,7 +32,7 @@
(data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s")
(data (i32.const 400) "\0d\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\1a\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06")
(data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -1652,7 +1652,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -31,7 +31,7 @@
(data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00")
(data (i32.const 400) "\0d\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\1a\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06\00\00\00\00\00\00")
(data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d\00\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -3343,7 +3343,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

View File

@ -175,7 +175,7 @@
(data (i32.const 6392) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008")
(data (i32.const 6424) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004")
(data (i32.const 6456) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009")
(data (i32.const 6496) "\08\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00I\00\00\00\02")
(data (i32.const 6496) "\08\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\92\04\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00\92\00\00\00\02")
(global $std/string/str (mut i32) (i32.const 24))
(global $std/string/nullStr i32 (i32.const 0))
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -1580,7 +1580,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
if
local.get $0

View File

@ -180,7 +180,7 @@
(data (i32.const 6840) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008\00")
(data (i32.const 6872) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004\00")
(data (i32.const 6904) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009\00")
(data (i32.const 6944) "\08\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00")
(data (i32.const 6944) "\08\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\92\04\00\00\02\00\00\00\92\00\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/string/str (mut i32) (i32.const 24))
@ -3247,7 +3247,7 @@
local.get $0
i32.load offset=8
call $~lib/rt/__typeinfo
i32.const 8
i32.const 16
i32.and
i32.eqz
if

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long