mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 15:12:12 +00:00
support normal arrays
This commit is contained in:
parent
9620f18249
commit
c34ed66fd9
@ -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
|
||||
--------
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -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>>();
|
||||
|
Binary file not shown.
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user